ORACLE的WHERE条件中加判断如何处理?

岁月明灯 2017-12-09 11:22:41
请教大家一个问题,我在oracle的SQL语句where 条件里想做个判断: 
如果ta.orderno 为空, 则不加判断条件;
如果ta.orderno不为空,则加上 ta.orderno = tc.orderno
这个想加在where条件里怎么处理?
...全文
2497 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
AHUA1001 2020-11-09
  • 打赏
  • 举报
回复
用OR,肯定可以实现功能,但是大概率是不走索引的。
建议这样试试看:
where tc.orderno = nvl(ta.orderno,tc.orderno)
ClearlightY 2020-11-09
  • 打赏
  • 举报
回复
查到重复数据后, 查的时候加上 distinct 就好了
自由自在_Yu 2017-12-12
  • 打赏
  • 举报
回复
where ta.orderno = tc.orderno or ta.orderno is null
碧水幽幽泉 2017-12-09
  • 打赏
  • 举报
回复
where ta.orderno is null or ta.orderno = tc.orderno
卖水果的net 2017-12-09
  • 打赏
  • 举报
回复
 ta.orderno = tc.orderno or  ta.orderno is null

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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