sql查询中字段值为null的处理

zhouguoyu2012 2011-12-17 08:54:20
sql2005

形如: select * from id = '"+ strID +"';

表中id可能为null,
strID有两种情况,为0或者为1:
为0的时候,字段id为null的也要检索出来
为1的时候就是id为1的时候

这条语句该怎么写?我上面写的检索不到id为null的时候
...全文
714 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
香儿爱土豆 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhouguoyu2012 的回复:]

引用 1 楼 zerokiseki 的回复:

1.select ISNULL(id,0) id,其它字段 from table where id = '"+ strID +"';

2.可以使用case when,原理一样是讲NULL列转为指定值


第一种方式就是这样写了?
select * from table where isnull(id, 0) = '"+ strID……
[/Quote]

性能原则:where子句左式尽量避免逻辑运算,需要和谐掉这种情况,海量数据会产生性能瓶颈
萧炎 2011-12-17
  • 打赏
  • 举报
回复
select * from table where id=strID == 0 ? 0: 1
ssl999sss 2011-12-17
  • 打赏
  • 举报
回复
sql="select * from table where isnull(id, 0) = "+ strID ;
或者
case when 查询
LYMPC 2011-12-17
  • 打赏
  • 举报
回复
sql="select * from table where isnull(id, 0) = "+ strID ;
LYMPC 2011-12-17
  • 打赏
  • 举报
回复
select * from table where isnull(id, 0) = '"+ strID +"';
这句正确
flyerwing 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zerokiseki 的回复:]
1.select ISNULL(id,0) id,其它字段 from table where id = '"+ strID +"';

2.可以使用case when,原理一样是讲NULL列转为指定值
[/Quote]
这两个在查询时处理
ireenter 2011-12-17
  • 打赏
  • 举报
回复
如果是oracle数据库,就用NVL函数。
zhouguoyu2012 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zerokiseki 的回复:]

1.select ISNULL(id,0) id,其它字段 from table where id = '"+ strID +"';

2.可以使用case when,原理一样是讲NULL列转为指定值
[/Quote]

第一种方式就是这样写了?
select * from table where isnull(id, 0) = '"+ strID +"';
这样就把strID为0和1的两种状态都检索到了是吧?
我试验一下
香儿爱土豆 2011-12-17
  • 打赏
  • 举报
回复
1.select ISNULL(id,0) id,其它字段 from table where id = '"+ strID +"';

2.可以使用case when,原理一样是讲NULL列转为指定值

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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