15

特定の列のnullまたは0をチェックするmysqlクエリでケースを作成する方法

CREATE TABLE tblConfirmationStatus (Confirm_Status TINY INT)

tblConfirmationStatus に挿入
Confirm_Status
値
(1)、
(0)、
(1)、
({ヌル})、
(0)、
(1)、
({ヌル})

必要な出力

ステータスの確認

   確認済み
   確認されていません
   確認済み
   確認されていません
   確認されていません
   確認済み
   確認されていません

0 または Null - 未確認、1 - 確認済み

SELECT CASE Con​​firm_Status
            WHEN NULL OR 0 THEN '未確認'
             ELSE '確認済み' END AS ConfirmStatus
  FROM tblConfirmationStatus;
4

3 に答える 3

30

CASE ステートメントには 2 つのオプションがあります - あなたが投稿したもの、または:

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 に答える