私は以下のようなテーブルを持っています:
Table A
----------
ID Field1 Field2 Field3
1 A NULL B
2 B NULL NULL
3 C A NULL
4 A D NULL
要件は、すべてのフィールド(IDを除く)を1つに結合して、テーブルが次のようになるようにすることです。
Table A
-------
ID Field
1 A
2 B
3 C
4 D
値は明確である必要がありますが、どのような順序でも問題ありません。これは、Field1からField3が(任意の一時テーブルの)1つの列であり、異なる値を持つ必要があることを意味します。結果を明確にするためにID列を使用しましたが、IDは必須ではありません。現在、目的の出力にユニオンを使用しています。
select distinct Field
from
(Select Field1 as Field from TableA
where Field1 is not null
union
Select Field2 from TableA
where Field2 is not null
union
Select Field3 from TableA
where Field3 is not null
)
より少ないコード行で同じ出力を実現するためのより良い方法があると確信しています。