SQL中关于对null相关的处理?

Fishest 2010-09-13 06:00:58
最近有点疑惑,SQL中有对NULL的字段数据进行处理的方式【列:isnull(字段名,'自定义名') 】,有没有对非NULL的字段数据进行处理的方式呢?或者说假如有这么一个业务,遇到null的时候将null变为'X',非null的时候变为'O',大家会怎么处理呢?
...全文
132 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ask_chang 2010-09-14
  • 打赏
  • 举报
回复
CASE WHEN 字段 IS NULL THEN 'X' ELSE '0' END
用isnull(字段,'X')
1> 类型转换
2> 问题中的特殊值'X',应该为'0'
claro 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 feilniu 的回复:]
不管字段为什么类型,这样是不会错的。

但如果字段是数值型/日期型等,isnull(字段名,'X')会出错。
[/Quote]
厉害!
可能我没有考虑隐式转换,但下意识的行为一定要正确。
避免隐式是有好处的。
feixianxxx 2010-09-13
  • 打赏
  • 举报
回复
「已注销」 2010-09-13
  • 打赏
  • 举报
回复
DECLARE @str VARCHAR(100)
SET @str=null

SELECT CASE isnull(@str,'x') WHEN 'x' THEN 'x' ELSE '0' END result
feilniu 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 claro 的回复:]

遇到null的时候将null变为'X',非null的时候变为'O',大家会怎么处理呢?
SQL code
--字段为字符型
CASE WHEN 字段 IS NULL THEN 'X' ELSE '0' END
[/Quote]

不管字段为什么类型,这样是不会错的。

但如果字段是数值型/日期型等,isnull(字段名,'X')会出错。
feilniu 2010-09-13
  • 打赏
  • 举报
回复

CASE WHEN 字段 IS NULL THEN 'X' ELSE '0' END
claro 2010-09-13
  • 打赏
  • 举报
回复
遇到null的时候将null变为'X',非null的时候变为'O',大家会怎么处理呢?
--字段为字符型
CASE WHEN 字段 IS NULL THEN 'X' ELSE '0' END


王向飞 2010-09-13
  • 打赏
  • 举报
回复
case when isnull(字段名,'X') = 'X' then 'X' else '0' end  

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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