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

SQLServerでNULL=NULLがfalseと評価されるのはなぜですか

    その場合、nullは「不明」(または「存在しない」)と考えてください。どちらの場合も、どちらの値もわからないため、等しいとは言えません。したがって、null =nullはtrueではないと評価されます(システムに応じてfalseまたはnull)。これは、値が等しいと言う値がわからないためです。この動作は、ANSISQL-92規格で定義されています。

    編集:これは、ansi_nullsの設定によって異なります。 ANSI_NULLSがオフの場合、これはtrueと評価されます。例として次のコードを実行します...

    set ansi_nulls off
    
    if null = null
        print 'true'
    else
        print 'false'
    
    
    set ansi_nulls ON
    
    if null = null
        print 'true'
    else
        print 'false'
    


    1. SQLServerのカーソルタイプ-ローカルカーソルとグローバルカーソルの違いは何ですか。 SQLServerチュートリアル/TSQLチュートリアル

    2. MySQLでUNIONを使用する場合の「エラー1222(21000):使用されるSELECTステートメントの列数が異なる」を修正

    3. ver.2 PyGreSQLエラー:from _pg import * ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした

    4. Oracle ISNULL()と同等