注册 登录
编程论坛 SQL Server论坛

select 中的NULL问题

josephzzq 发布于 2007-03-21 21:51, 2404 次点击
我想问一下,我这里有条SQL语句:
select *
from xs
where 总学分 is NULL
go
但显示不到结果,而用
select *
from xs
where 总学分 is not NULL
go
却全部数据都显示出来了,为什么呢?
我的疑问是:
1,在SQL中,NULL与null应该是一样的吧,即不区分大小写,是吗?
2,如果是用is NULL的话不是应该会显示总学分是NULL的数据吗?
小弟是初学,希望大家能帮帮我,如果可以的话最好高手还能加我Q:349876387.
我是真心想学好SQL的.
13 回复
#2
flmls2007-03-21 22:29

回答:1)不分大小写的
2)是,用where 总学分 is nul 显示全部为空的
我感觉你的错误可能是,因为你设置的 总学分 是NOT NULL的
所以查询不出

#3
josephzzq2007-03-21 23:34

谢谢你,虽然不是你的答案.不过我找到答案了.
不过现在我有一个新的问题:
就是我明明设置了例如总学分这一列是可以为NULL的,不过我再修改数据时它就不可以为NULL了,出现了数据类型
不符合之类字样.而新加入的行就可以设置为NULL,这是为什么呢?

#4
棉花糖ONE2007-03-22 00:25
1,在SQL中,NULL与null应该是一样的吧,即不区分大小写,是吗?
2,如果是用is NULL的话不是应该会显示总学分是NULL的数据吗?

1.sql中不区分大小写
2.is null的话是显示总学分为null的
#5
Kendy1234562007-03-22 09:16
以下是引用josephzzq在2007-3-21 23:34:32的发言:

谢谢你,虽然不是你的答案.不过我找到答案了.
不过现在我有一个新的问题:
就是我明明设置了例如总学分这一列是可以为NULL的,不过我再修改数据时它就不可以为NULL了,出现了数据类型
不符合之类字样.而新加入的行就可以设置为NULL,这是为什么呢?

如果你在SQL中直接修改 那么它依然可以被修改NULL
不能为NULL的错不是SQL报的 而是你使用的开发语言报的。 新加入的行 如果你指定null一样会报这个错,你之所以能通过, 是因为这几个字段你并没有指定值 SQL缺省给他赋值为null了

#6
josephzzq2007-03-22 11:55
不好意思,楼上的说法我不是很懂,我没有用什么开发语言啊,我只是在SQL SERVER 2000的企业管理器中修改的.
请高手再详细一点回答这个问题好吗?
问题如下:
(例如总学分这一列是可以为NULL的,不过我再修改数据时它就不可以为NULL了,出现了数据类型
不符合之类字样.而新加入的行就可以设置为NULL,这是为什么呢?)
#7
bygg2007-03-22 12:52
以下是引用josephzzq在2007-3-22 11:55:31的发言:
不好意思,楼上的说法我不是很懂,我没有用什么开发语言啊,我只是在SQL SERVER 2000的企业管理器中修改的.
请高手再详细一点回答这个问题好吗?
问题如下:
(例如总学分这一列是可以为NULL的,不过我再修改数据时它就不可以为NULL了,出现了数据类型
不符合之类字样.而新加入的行就可以设置为NULL,这是为什么呢?)


在你改成NULL前,先把表中相应的为空的字段加上相应的值就不会出错了..

#8
josephzzq2007-03-22 13:06
以下是引用bygg在2007-3-22 12:52:28的发言:


在你改成NULL前,先把表中相应的为空的字段加上相应的值就不会出错了..

为什么会这样呢,如果表中只有一个为NULL呢,那又应该怎样改?
我实在比较菜,请您能解析详细一点.
THS!

#9
棉花糖ONE2007-03-22 13:16
去看看帮助
#10
josephzzq2007-03-22 22:10
可以告诉我吗
#11
scindy2007-03-24 10:56
几位版主说得很清楚了,如果还不懂的话,就去看帮忙吧`~~

#12
sgliuxiu2007-03-24 13:32
sql里,null不表示什么值,也不表示是空格,它应该就是什么也没有。
#13
xiyou4192007-03-24 17:40
以下是引用josephzzq在2007-3-21 23:34:32的发言:

谢谢你,虽然不是你的答案.不过我找到答案了.
不过现在我有一个新的问题:
就是我明明设置了例如总学分这一列是可以为NULL的,不过我再修改数据时它就不可以为NULL了,出现了数据类型
不符合之类字样.而新加入的行就可以设置为NULL,这是为什么呢?

这个问题我也遇到过,理论上我们再提交时应该可以空,但是如果起初建表时没有设置好而是最后再该的,那么插入空值就可能产生错误,这个可能和我们使用的盗版软件有很大关系!你试试刷新服务器后在重新打开企业管理器看看.

#14
josephzzq2007-03-24 19:15
那应该怎样刷新服务器呢
1