概念的には相互に排他的な3つのブール列を含むテーブルを持つDBからデータを移行しています。例えば:
| TypeA | TypeB | TypeC |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 0 | 0 |
3つのブール列のどれがtrueに設定されているかに基づいて、これらの3つのブール値を1つの列にマージする必要があります。私が求めている結果は次のようになります。
| Type |
| B |
| C |
| B |
| A |
| A |
これまでに次のことを考えてきましたが、少し面倒です。もっと良い方法はありますか?
SELECT
CASE WHEN TypeA= 1
THEN 'A'
ELSE
CASE WHEN TypeB= 1
THEN 'B'
ELSE
CASE WHEN TypeC= 1
THEN 'C'
END
END
END as Type
FROM TABLE