gpt4 book ai didi

mysql - 需要写MySQL case语句

转载 作者:行者123 更新时间:2023-11-29 02:22:47 25 4
gpt4 key购买 nike

我需要写一个 MySQL 语句,但不知道如何使用 case 语句来写。

我想写这样的东西:

SELECT 
*
FROM
table
WHERE:

IF sign_off_1 IS NOT NULL AND sign_off_1 IS NOT EQUAL TO 'Director'
sign_off_1_status MUST BE EQUAL TO Complete

IF sign_off_2 IS NOT NULL AND sign_off_2 IS NOT EQUAL TO 'Director'
sign_off_2_status MUST BE EQUAL TO Complete

IF sign_off_3 is IS NOT NULL AND sign_off_3 IS NOT EQUAL TO
'Director' sign_off_3_status MUST BE EQUAL TO Complete

有人知道编写此查询的正确语法吗?

最佳答案

不清楚您想要实现什么。行是否需要满足所有三个条件,还是只满足其中一个?无需使用 CASE 表达式即可获得任一结果。

如果要求是使用 CASE 表达式,并且您需要所有三个条件都为真,您可以这样做:

SELECT t.id
FROM mytable t
WHERE CASE
WHEN t.sign_off_1 <> 'Director' AND t.sign_off_1_status = 'Complete'
THEN 1
ELSE 0
END
+ CASE
WHEN t.sign_off_2 <> 'Director' AND t.sign_off_2_status = 'Complete'
THEN 1
ELSE 0
END
+ CASE
WHEN t.sign_off_3 <> 'Director' AND t.sign_off_3_status = 'Complete'
THEN 1
ELSE 0
END
= 3

如果您只需要其中一个条件为真,您可以将 = 3 替换为 > 0

请注意,与文字的不等式比较足以保证该列不为空。 (如果该列为 NULL,不等式比较将返回 NULL,而不是 TRUE。)

同样,不使用 CASE 表达式也可以获得相同的结果。

关于mysql - 需要写MySQL case语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517751/

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