次のコードは、exchange 列が null であるテーブル内のすべてのレコードを表示することを期待していますが、結果セットには 0 行が表示されます。理由はありますか?
SELECT * FROM pubco WHERE exchange IS NULL;
''
どちらが同じではないと解釈したかもしれませんがNULL
、これを試してください
SELECT *
FROM pubco
WHERE exchange IS NULL OR
exchange = ''
それでも値が取得されない場合は、スペースが含まれている可能性があるため、値を取得する必要がありますTRIM
。
SELECT *
FROM pubco
WHERE exchange IS NULL OR
TRIM(exchange) = ''
this クエリを使用するのではなく
SELECT *
FROM pubco
WHERE exchange IS NULL OR
exchange = ''
これを試して
SELECT * FROM pubco
WHERE isnull(exchange,'')='';
それはあなたのパフォーマンスを向上させます。
1 つの重要な注意点: NULL
and ''
(つまり空の文字列) は同じものではありません。ほとんどの場合、列には空の文字列が含まれているため、別の条件を設定する必要があります。
SELECT * FROM pubco WHERE (exchange IS NULL OR exchange = '');
それらがnullであると確信していますか?
たぶん、それらは同じではない文字列値「NULL」を持っています。もしそうなら、それは何を返しますか:
SELECT * FROM pubco WHERE exchange == "NULL";