▲关于select NULL▲

牧牛人软件 2006-04-25 09:54:28
name address
------------------
张三 解放路15号
李四 (null)
王五 解放东路108号
李建 开元路77号

------------------------
要选出address not like '解放%'的记录:
select name, address
from tab
where address not like '解放%';
结果 “李四”不在其中。

必须改成:
select name, address
from tab
where address not like '解放%' or address is null;
-----------------------------------------------------
▲问题:
以上只是举例,我实际的的查询条件很复杂,条件中有太多的is null很讨厌!
请问有什么简便的方法?


...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
boydgmx 2006-04-26
  • 打赏
  • 举报
回复
select name, address
from tab
where nvl(address,'x') not like '解放%';

但这样的话就无法使用索引
goldarcher2005 2006-04-26
  • 打赏
  • 举报
回复
nvl(address,'%') like
超叔csdn 2006-04-26
  • 打赏
  • 举报
回复
当然楼上的几位的方法也都蛮好
超叔csdn 2006-04-26
  • 打赏
  • 举报
回复
只要是NULL,用not in,not like 什么的它都不匹配,基本上就只能通过 is null 来把该条记录查出来。
baggio785 2006-04-26
  • 打赏
  • 举报
回复
select name,address
from tab
where nvl(address,' ') not like '解放%';
Visual_Studio_Net 2006-04-25
  • 打赏
  • 举报
回复
where address||' ' not like '解放%';

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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