最近发现在使用 = NULL是有些数据会查询不到。这种写法是错误的。
SQL实际使用 is NULL 和 is not NULL判断字段为空,注意为空不代表为”(空字符串)或为0。
而NULL = NULL和NULL <> NULL其实返回的都是 FALSE,任何值和NULL做运算的结果都是false。
如果一定要用= NULL,则需要加上set ANSI_NULLS off使得SQL将不再遵循SQL92标准,可以使用=和<>来与NULL做BOOL运算
最近发现在使用 = NULL是有些数据会查询不到。这种写法是错误的。
SQL实际使用 is NULL 和 is not NULL判断字段为空,注意为空不代表为”(空字符串)或为0。
而NULL = NULL和NULL <> NULL其实返回的都是 FALSE,任何值和NULL做运算的结果都是false。
如果一定要用= NULL,则需要加上set ANSI_NULLS off使得SQL将不再遵循SQL92标准,可以使用=和<>来与NULL做BOOL运算