“= null”并选择语句!

时间:2010-04-30 17:54:16

标签: mysql database

我之前在这个论坛上问过这个问题,他们告诉我它会返回一个空的结果集。我想知道如果我将列设置为空值,它还会返回一个空结果集吗? (注意:ANSI_NULLS为OFF)

SELECT 'A' FROM T WHERE A = NULL;

这也是一个让我感到困惑的例子:

DECLARE @val CHAR(4)
SET @val = NULL
SET ANSI_NULLS ON

If @val =NULL
    PRINT ‘TRUE’
ELSE
    PRINT ‘FALSE’

SET ANSI_NULLS OFF

If @val =NULL
    PRINT ‘TRUE’
ELSE
    PRINT ‘FALSE’

我在此示例中找到的网站是:http://www.sqlservercentral.com/articles/T-SQL/understandingthedifferencebetweenisnull/871/

2 个答案:

答案 0 :(得分:5)

它将始终返回一个空结果集,因为没有任何东西可以等于NULL。 NULL被认为是“未知”,所以即使你做SELECT 'A' FROM T WHERE NULL = NULL;它也会返回一个空集。如果要检查列是否为空,请执行:

SELECT 'A' FROM T WHERE A IS NULL;

答案 1 :(得分:2)

您需要IS NULLNULL = NULL在SQL

中的计算结果为false