gpt4 book ai didi

sql - 将三个 bool 列合并为一个枚举列

转载 作者:行者123 更新时间:2023-12-02 06:19:18 26 4
gpt4 key购买 nike

我正在从一个包含 3 个 bool 列的表的数据库中迁移数据,这些列在概念上是互斥的。例如:

| TypeA | TypeB | TypeC |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 0 | 0 |

我需要根据 3 个 bool 列中的哪一个设置为 true 将这三个 bool 值合并到一个列中。我想要的结果类似于:

| 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

最佳答案

您可以像这样在 CASE 语句中堆叠条件

CASE
WHEN TypeA = 1 THEN 'A'
WHEN TypeB = 1 THEN 'B'
WHEN TypeC = 1 THEN 'C'
END as Type

关于sql - 将三个 bool 列合并为一个枚举列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15511419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com