mssql null 的问题

liuhongwei90 2010-05-13 06:42:52
select case null
when '' then '1'
when null then '2' --为什么没有在这个位置判断出来
else '3'
end a

select 1 a,2 b into #a
select isnull(b,0) b from #a where a=2
--b列没有数据 应该用什么来判断b是空的呢
...全文
83 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangsong841 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sql77 的回复:]
NULL 与 NULL 比默认是UNKWONE的,
[/Quote]
支持,
补充:
另外null与任何非null
默认是UNKWONE的
永生天地 2010-05-14
  • 打赏
  • 举报
回复
路过 蹭分 帮顶 学习
sql_lover 2010-05-13
  • 打赏
  • 举报
回复
isnull(b,0)的意思就是b没有数据的时候返会0嘛
永生天地 2010-05-13
  • 打赏
  • 举报
回复
1、
null is null nul <> null
2、空集合没有属性
xiaoliaoyun 2010-05-13
  • 打赏
  • 举报
回复
第二个不是很明白.
"没有值"和"有值但是值为NULL"是2个概念,可以价格判断,如果返回0行记录,则设置b为0

DECLARE @b INT
SELECT @b = ISNULL(b,0) FROM #a WHERE a=2
IF @@ROWCOUNT = 0
SELECT @b = 0
SELECT @b AS b
SQL77 2010-05-13
  • 打赏
  • 举报
回复
NULL 与 NULL 比默认是UNKWONE的,
htl258_Tony 2010-05-13
  • 打赏
  • 举报
回复
--b列没有数据 应该用什么来判断b是空的呢
where b is null
xiaoliaoyun 2010-05-13
  • 打赏
  • 举报
回复
1.因为NULL <> NULL,所以第一个不会为2

DECLARE @a INT
DECLARE @b INT

SET @a = NULL
SET @b = NULL

IF @a = @b
PRINT 'NULL = NULL'
ELSE
PRINT 'NULL <> NULL'

22,210

社区成员

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

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