如何在mysql查询中编写一个案例,该案例检查特定列的null或0
CREATE TABLE tblConfirmationStatus (Confirm_Status TINY INT) INSERT INTO tblConfirmationStatus Confirm_Status VALUES (1), (0), (1), ({null}), (0), (1), ({null})
必需的输出
ConfirmStatus
Confirmed Not Confirmed Confirmed Not Confirmed Not Confirmed Confirmed Not Confirmed
0或Null - 未确认,1-Confirmed
SELECT CASE Confirm_Status WHEN NULL OR 0 THEN 'Not Confirmed' ELSE 'Confirmed' END AS ConfirmStatus FROM tblConfirmationStatus;
答案 0 :(得分:24)
CASE语句有两个选项 - 您发布的语句或:
SELECT CASE
WHEN Confirm_Status IS NULL OR Confirm_Status = 0 THEN 'Not Confirmed'
ELSE 'Confirmed'
END AS ConfirmStatus
但你可以使用:
SELECT CASE
WHEN Confirm_Status > 0 THEN 'Confirmed'
ELSE 'Not Confirmed'
END AS ConfirmStatus
NULL
缺少一个值,因此检查大于零的值应归入与零相同的类别。
答案 1 :(得分:4)
SELECT IF((Confirm_Status IS NULL OR Confirm_Status = 0),
'Not Confirmed', 'Confirmed') AS ConfirmStatus
FROM tblConfirmationStatus;
答案 2 :(得分:1)
您是否看过使用IFNULL运算符。
IFNULL(表达式1,表达式2)
如果expr1不为NULL,则IFNULL()返回expr1;否则它会返回 表达式2。 IFNULL()返回一个数字或字符串值,具体取决于 使用它的上下文。