昨天系统又增加了一个导入的功能,结果导入进去后查询不出来港导进去的数据,而查询以前的都可以查询出来,很是纳闷。仔细检查了下程序,没问题的。突然想到前段时间看到的SQL NULL值问题,感觉应该是这个了。结果还真是这个在作怪。有NULL值的话,你用LIKE语句进行查询的时候,对不起,一个数据都没有。解决办法。全部设置一个默认值。这个默认值可以设置成‘’ 在企业管理器中进行。时间自己设置一个系统不会用到的时间。反正处理时间很是麻烦。以下是MS的官方资料
NULL 值是遗漏的未知数据。
默认地,表的列可以存放 NULL 值。
本章讲解 IS NULL 和 IS NOT NULL 操作符。
SQL NULL 值
如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新纪录或更新已有的记录。这意味着该字段将以 NULL 值保存。
NULL 值的处理方式与其他值不同。
NULL 用作未知的或不适用的值的占位符。
注释:无法比较 NULL 和 0;它们是不等价的。
SQL 的 NULL 值处理
请看下面的 "Persons" 表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | London | |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Beijing |
假如 "Persons" 表中的 "Address" 列是可选的。这意味着如果在 "Address" 列插入一条不带值的记录,"Address" 列会使用 NULL 值保存。
那么我们如何测试 NULL 值呢?
无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。
我们必须使用 IS NULL 和 IS NOT NULL 操作符。
SQL IS NULL
我们如何仅仅选取在 "Address" 列中带有 NULL 值的记录呢?
我们必须使用 IS NULL 操作符:
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NULL
结果集:
LastName | FirstName | Address |
---|---|---|
Adams | John | |
Carter | Thomas |
提示:请始终使用 IS NULL 来查找 NULL 值。
SQL IS NOT NULL
我们如何选取在 "Address" 列中不带有 NULL 值的记录呢?
我们必须使用 IS NOT NULL 操作符:
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL
结果集:
LastName | FirstName | Address |
---|---|---|
Bush | George | Fifth Avenue |