sql server中如何查讯空字段的?

wilddog 2003-09-12 02:44:55
比如BanCi字段,类型是int 但有的字段显视<NULL>,用select怎么查讯到他们?
我是这样写的
SELECT *
FROM Bookout
WHERE BanCi=null



SELECT *
FROM Bookout
WHERE BanCi=''

可是都不出结果??
...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lfangxiao 2003-09-12
  • 打赏
  • 举报
回复
谢谢琴剑楼主
CrazyFor 2003-09-12
  • 打赏
  • 举报
回复

Transact-SQL 参考


IS [NOT] NULL
确定一个给定的表达式是否为 NULL。

语法
expression IS [ NOT ] NULL

参数
expression

是任何有效的 Microsoft® SQL Server™ 表达式。

NOT

指定布尔结果取反。谓词反转其返回值,值不为 NULL 时返回 TRUE,值为 NULL 时返回 FALSE。

结果类型
布尔型

返回代码值
如果 expression 的值是 NULL,则 IS NULL 返回 TRUE;否则,返回 FALSE。

如果 expression 的值是 NULL,则 IS NOT NULL 返回 FALSE;否则,返回 TRUE。

注释
若要确定表达式是否为 NULL,请使用 IS NULL 或 IS NOT NULL,而不要用比较运算符(例如 = 或 !=)。如果有一个参数为 NULL 或两个参数都为 NULL,那么比较运算符返回 UNKNOWN。

示例
在下面的示例中,对于所有预付款少于 $5,000 或者预付款未知(或为 NULL)的书,返回它们的书号及预付款。请注意,显示的结果是在示例 C 执行后所返回的那些结果。

USE pubs
SELECT title_id, advance
FROM titles
WHERE advance < $5000 OR advance IS NULL
ORDER BY title_id

下面是结果集:

title_id advance
-------- --------------------------
MC2222 0.0000
MC3026 NULL
PC9999 NULL
PS2091 2275.0000
PS3333 2000.0000
PS7777 4000.0000
TC4203 4000.0000

(7 row(s) affected)


请参见

CASE

CREATE PROCEDURE

CREATE TABLE

数据类型

表达式

INSERT

LIKE

空值

运算符(逻辑运算符)

SELECT

sp_help

UPDATE

WHERE

©1988-2000 Microsoft Corporation。保留所有权利。
伍子V5 2003-09-12
  • 打赏
  • 举报
回复
来晚了,方晓答的很完美了:)
wilddog 2003-09-12
  • 打赏
  • 举报
回复
好的,谢谢各位:)
txlicenhe 2003-09-12
  • 打赏
  • 举报
回复
Select * from Bookout where BanCi is null
lfangxiao 2003-09-12
  • 打赏
  • 举报
回复
'' 和 NULL 值不一样的,你要注意这一点
lfangxiao 2003-09-12
  • 打赏
  • 举报
回复
SELECT *
FROM Bookout
WHERE BanCi IS NULL

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧