我在数据库里面的一个表c里面,有一列b里面的一个值是null的,但是我用SELECT *
FROM c
WHERE (b = '') 始终是搜索不到,然而以前搜索的时候是能搜索到b列为空的值的那些列的,刚才重新装了一边server还是不行,请问高手应该怎么解决这样的问题

解决方案 »

  1.   

    SELECT *
    FROM c
    WHERE b = '' or b is null
      

  2.   

    select * from 表 where 字段 is null
      

  3.   

    SET ANSI_NULLS
    指定在对空值使用等于 (=) 和不等于 (<>) 比较运算符时,这些运算符的 SQL-92 遵从行为。语法
    SET ANSI_NULLS {ON | OFF}注释
    SQL-92 标准要求对空值的等于 (=) 或不等于 (<>) 比较取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中存在空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中存在非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍返回零行。当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中含有空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中含有非空值的行。此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有非 XYZ 值和非 NULL的行。
      

  4.   

    NULL存在不缺的值,''代表空字符串。本质的区别
      

  5.   

    但是在其他的机子上的数据库里面搜索的时候,用''就可以搜索到值为null的内容呀!
      

  6.   

    ....SQL语句里,null区别于任何一个值,甚至两个字段的NULL都不相等,在SQL里只有用字段 is null语句才能选择出NULL字段