为什么null的也没选出来

lusawlx 2010-07-27 10:31:23
SELECT *
FROM EVA_CANDIDATES
WHERE (DIVISIONNM <> '1')

这样写的话,,
那些 DIVISIONNM 为NULL的也没办法 选择出来
我想把除了DIVISIONNM = '1' 的都选出来,但是有问题
得怎么写呢?
...全文
74 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
claro 2010-07-27
  • 打赏
  • 举报
回复
--try
not DIVISIONNM = '1'
not DIVISIONNM = 1
xmx2009 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 js_szy 的回复:]
SQL code
WHERE (DIVISIONNM <> '1' or DIVISIONNM is null)
[/Quote]
up
王向飞 2010-07-27
  • 打赏
  • 举报
回复
在《SQL-3参考大全》中,作者这样解释NULL的含义:未知或未定义。对NULL来说,有很多有趣的特性。

NULL是一个数据值,而且它属于一个域(?)。是的,例如一个字符串字段,其中的空值只能是一个字符串。尽管它的内容没有定义,或者未知,但它是字符串,这一点无可置疑。

NULL不是非法数据,这一点SQL-3 标准也说的很清楚。我们没有办法保存零分之一,但可以保存空值。虽然它是空值,是未定义,是未知,可它也的确是 一个合法的信息。

运算黑洞:对于NULL,一般的运算都会返回NULL。比如加减乘除,这简直就是一个黑洞一样。永远不会有什么数据等于NULL。当然,1不等于NULL,2也一样。可是,NULL也不等于NULL。说一个NULL等于NULL是错误的。所以我们只能比较它“是”或“不是”。为了避免混乱,SQL-3标准有一些约定。比如表达式 x=NULL,结果应当是UNKOWN 。 而表达式“x is NULL”,就得看情况,如果x是NULL或 False,就返回Ture(?);x是非NULL,返回False。有点奇怪是不是,它基于NULL不等于NULL。 这个规则的确为SQL标准所支持,遇到这样的数据库系统,可不要感到惊讶。

三值逻辑:《鹿鼎记》中的韦小宝,整人的秘诀之一就是“我问你话,是就点头,不是就摇头,不许你出声!”的确,通常我们的逻辑观点,总是基于这种二值逻辑体系,对就是对,错就是错。可在关系理论中,没有这么简单。有一种没有绝对是非的情况存在:NULL。这就是关系理论的三值逻辑。

还有一些常见的与NULL相关的情况。比如,统计函数(也有的文档称之为聚集函数、集函数)通常会忽略NULL。不过,假设有这样一个表T:

C

-----

1

2

NULL

NULL

我们分别执行两个查询:SELECT COUNT(*) FROM T和SELECT COUNT(C) FROM T, 猜猜会有什么不同?起初,我以为两个结果应当一样。结果,前一个是4,后一个是2。前一个等于4,显然基于NULL也是数据这个事实;而后一个结果为2,是由于统计C列时,COUNT忽略了NULL。
王向飞 2010-07-27
  • 打赏
  • 举报
回复
NULL是代表未知的,不能和DIVISIONNM 进行比较的,
lusawlx 2010-07-27
  • 打赏
  • 举报
回复
想不能WHERE (DIVISIONNM <> '1')
为什么NULL的没能出来
lusawlx 2010-07-27
  • 打赏
  • 举报
回复
刚才也是用第二种写,但是有点想不通,为什么会选择出来的
永生天地 2010-07-27
  • 打赏
  • 举报
回复
SELECT *
FROM EVA_CANDIDATES
WHERE (DIVISIONNM <> '1') or DIVISIONNM is null
华夏小卒 2010-07-27
  • 打赏
  • 举报
回复
WHERE (DIVISIONNM <> '1' or DIVISIONNM is null)
华夏小卒 2010-07-27
  • 打赏
  • 举报
回复
WHERE (isnull(DIVISIONNM,'') <> '1')
zhaojianmi1 2010-07-27
  • 打赏
  • 举报
回复
null不是东西

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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