sql >> データベース >  >> RDS >> Oracle

「存在しない」と「存在しない」の違いは何ですか?

    NOT INの違い および存在しません NULLがある場所が明らかになります 結果に含まれる値。

    例:

    create table test_a (col1 varchar2(30 char));
    create table test_b (col1 varchar2(30 char));
    
    insert into test_a (col1) values ('a');
    insert into test_a (col1) values ('b');
    insert into test_a (col1) values ('c');
    insert into test_a (col1) values ('d');
    insert into test_a (col1) values ('e');
    
    insert into test_b (col1) values ('a');
    insert into test_b (col1) values ('b');
    insert into test_b (col1) values ('c');
    insert into test_b (col1) values (null);
    

    :主な違いは、test_b nullが含まれています 値。

    select * from test_a where col1 not in (select col1 from test_b);
    

    行が返されません

    select * from test_a where 
        not exists
            (select 1 from test_b where test_b.col1 = test_a.col1);
    

    返品

    col1
    ====
    d
    e
    


    1. 異なる整数型で同じ値を保存することに違いはありますか?

    2. 巨大なテーブルからすべての行を読み取る方法は?

    3. MySQLエラーコード:1305。FUNCTIONJSON_EXTRACTはMySQLクライアントバージョンに存在しません:5.5.52

    4. MySQLシングルクエリは3つのテーブルを結合し、すべての結果を取得します