gpt4 book ai didi

mysql - 对大量条件使用 SQL 的 CASE?

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:24 24 4
gpt4 key购买 nike

我想做的是:

case_1  case_2  case_3  Final
0 0 0 0
0 0 1 3
0 1 0 2
1 0 0 1
1 1 0 2
1 0 1 3
0 1 1 3
1 1 1 3

这意味着当 case_1 为 0,case_2 为 0,case_3 为 0 时,最后的 col 值为 0。 同样,当 case_1 为 1,case_2 为 1,case_3 为 1 时,最终的 cols 将为 3。 等等。

最后我在 SQL 中输入的内容很尴尬:

Select *,
case when case_1>0 and case_2>0 and case_3>0 then 3 else 0,
case when case_1>0 and case_2>0 and case_3=0 then 2 else 0,
case when case_1>0 and case_2=0 and case_3=0 then 1 else 0,
....
....
....
from mytable;

现在这很糟糕,我知道。有没有更好的编码方式?

最佳答案

从示例来看,优先级似乎是情况 3 -> 情况 2 -> 情况 1。在这种情况下,您可以执行以下操作:

SELECT *,
CASE WHEN case_3 > 0 THEN 3
WHEN case_2 > 0 THEN 2
WHEN case_1 > 0 THEN 1
ELSE 0 END AS `Final`
FROM table;

关于mysql - 对大量条件使用 SQL 的 CASE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45587701/

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