1

、、およびをフィールドとしてABC持つ1 つのテーブルがあります。EMPLIDGRADESALARYDATE

次の 3 つのステートメントを実行しています。

select count(*) from ABC;

結果 :- 458

select count(*) from ABC where GRADE LIKE '%def%';

結果:-0

select count(*) from ABC where GRADE NOT LIKE '%def%';

結果 :- 428

ここでの私のポイントは次のとおりです。2 番目のクエリの結果と 3 番目のクエリの結果を足した結果は、最初のクエリの結果と等しくなければなりません。

4

3 に答える 3

7

GRADE が であるレコードが 30 件あるようですnull

null値は不明であるため、どちらの条件にも一致しません。

于 2013-05-29T13:01:54.690 に答える
2

NULL(他の人が述べたように) テーブルに値を持つことができる明らかなケースとは別に、空の文字列を持つこともできることに注意してください。

オラクルでは:

-- Returns nothing
select 1 from dual where '' like '%'

MySQLの場合:

-- Returns 1
select 1 from dual where '' like '%'

の両方で質問にタグを付けたので、ここで非互換性に遭遇する可能性があり'' IS NULLます。

于 2013-05-29T13:11:03.163 に答える