NAMEテーブルでは、FIRST列にはnullがありますが、行は選択されていません。私の理解を助けてください。OracleのSQL NULL値が選択されていません
SELECT * FROM NAME WHERE FIRST != '1'
NAMEテーブルでは、FIRST列にはnullがありますが、行は選択されていません。私の理解を助けてください。OracleのSQL NULL値が選択されていません
SELECT * FROM NAME WHERE FIRST != '1'
null
を持つ任意の比較が偽である - =
と<>
、>
、<
、というように。またをIN
リストに使用することはできません。無視されます。さらに、2つのnull
は、ではなく、であっても等しい。
ヌルを取得するには、あなたがこのように、明示的に彼らのために依頼する必要があります。
SELECT * FROM NAME WHERE FIRST IS NULL OR FIRST != '1'
NULLとの比較はNULLを返します。これはFALSEと等価です。これは、等しくない真の前夜です。
where first <> '1' or first is null
またはOracleでは
where coalesce(first, '<null>') <> '1'
、nullが明示的を求めるない限り、選択するために有効な値を考慮されていません:あなたはNULL値を含める場合は
は、次のいずれかの操作を行います。それは:
select * from name where (first != '1') or first is null
また、(合体と同様)NVLを使用することができます
select * from name where nvl(first,'0') != '1'
をNULLには何か他のものと比較することはできませんので、正しいこと....
唯一のオプションOracleドキュメントのNULLによるか、またはコマンドで
SELECT * FROM NAME WHERE FIRST!=1 OR FIRST IS NULL
がknownmない値として定義されているか、値がないときに、あなたが持っていることは、NULLチェックを含めることです意味のあるこれは、オラクルがゼロの値をNULLとみなさないという理由だけです。これはほんの一例であり、アドオンです。ありがとう!