SELECT IFNULL(Col,'b') FROM Table
Col をチェックし、null でない場合は Col を返し、そうでない場合は b を返します。
Col をチェックして、null でない場合は「a」を返し、null の場合は「b」を返すにはどうすればよいですか。
私はこれを試しました:
SELECT IF(Col=NULL,'a','b') FROM Table
これは常に「b」を返します。これはどのように行われますか?
SELECT IFNULL(Col,'b') FROM Table
Col をチェックし、null でない場合は Col を返し、そうでない場合は b を返します。
Col をチェックして、null でない場合は「a」を返し、null の場合は「b」を返すにはどうすればよいですか。
私はこれを試しました:
SELECT IF(Col=NULL,'a','b') FROM Table
これは常に「b」を返します。これはどのように行われますか?
IS NULL
の代わりに、列が null かどうかを確認するために使用します= NULL
。
NULL
すべての値は結果と比較されるNULL
ため、常に取得されますb
。
SELECT IF(Col IS NULL,'a','b') FROM Table
CASE
独自のステートメントの代わりに、すべての DBMS で機能する ANSI SQL-92 互換ステートメントを使用できますIF
。
SELECT CASE WHEN Col IS NULL THEN 'a' ELSE 'b' END AS Col
FROM Table
記号NULL
を使用して比較できないため、現在のステートメントは期待どおりに機能していません。代わりに使用する必要があります。=
IS NULL
Three Valued Logicを読みたいと思うかもしれません
Null はどのデータ ドメインのメンバーでもないため、「値」とは見なされず、値がないことを示すマーカー (またはプレースホルダー) と見なされます。このため、Null との比較は True または False になることはありませんが、常に 3 番目の論理結果である Unknown になります。
null 値を比較するときはIS
、代わりに使用します=
SELECT IF(Col IS NULL,'a','b')
FROM Table