15

如何在 mysql 查询中编写一个案例,检查特定列的 null 或 0

CREATE TABLE tblConfirmationStatus (Confirm_Status TINY INT)

插入 tblConfirmationStatus
确认_状态
价值观
(1),
(0),
(1),
({空值}),
(0),
(1),
({空值})

所需输出

确认状态

   确认的
   还没有确定
   确认的
   还没有确定
   还没有确定
   确认的
   还没有确定

0 或 Null - 未确认,1-确认

选择案例 Confirm_Status
            当 NULL 或 0 THEN '未确认'
             ELSE 'Confirmed' END AS ConfirmStatus
  从 tblConfirmationStatus;
4

3 回答 3

30

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是没有值,因此检查零以上的值应该与零属于同一类别。

于 2012-07-30T05:02:37.247 回答
5
SELECT IF((Confirm_Status IS NULL OR Confirm_Status = 0), 
           'Not Confirmed', 'Confirmed') AS ConfirmStatus
FROM tblConfirmationStatus;
于 2012-07-30T05:02:45.433 回答
1

您是否看过使用IFNULL运算符。

IFNULL(expr1,expr2)

如果 expr1 不为 NULL,则 IFNULL() 返回 expr1;否则返回 expr2。IFNULL() 返回一个数字或字符串值,具体取决于使用它的上下文。

于 2012-07-30T05:02:17.337 回答