Not equal <> != operator on NULL

后端 未结 11 1743
南旧
南旧 2020-11-22 02:50

Could someone please explain the following behavior in SQL?

SELECT * FROM MyTable WHERE MyColumn != NULL (0 Results)
SELECT * FROM MyTable WHERE MyColumn <         


        
11条回答
  •  感动是毒
    2020-11-22 03:40

    <> is Standard SQL-92; != is its equivalent. Both evaluate for values, which NULL is not -- NULL is a placeholder to say there is the absence of a value.

    Which is why you can only use IS NULL/IS NOT NULL as predicates for such situations.

    This behavior is not specific to SQL Server. All standards-compliant SQL dialects work the same way.

    Note: To compare if your value is not null, you use IS NOT NULL, while to compare with not null value, you use <> 'YOUR_VALUE'. I can't say if my value equals or not equals to NULL, but I can say if my value is NULL or NOT NULL. I can compare if my value is something other than NULL.

提交回复
热议问题