我正在使用包含 3 个布尔列的表从数据库迁移数据,这些列在概念上是互斥的。例如:
| TypeA | TypeB | TypeC |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 0 | 0 |
我需要根据 3 个布尔列中的哪一个设置为 true,将这三个布尔值合并到一个列中。我追求的结果看起来像:
| 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