oracle多组合条件查询,求高手

st380109693 2011-08-23 10:32:35
现需要对一个表中的两个字段进行组合形式的条件查询:
如 a ,b , c , d 四个字段,
需要对a,b两个字段进行组合查询:(a='**' and b='**') or (a='**') or (b='**') 。。。
求高手用instr()和decode()类似的方法实现。

SELECT * FROM ccicys.prpcmain WHERE 1=1 And OperateSite IS NOT NULL And SUBSTR(flag,6,1)='E'  
AND ((1=1) AND ( RiskCode ='EYZ') OR( RiskCode ='EYX' AND OperateSite ='0000000415') )
...全文
346 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzbbob1985 2011-08-23
  • 打赏
  • 举报
回复
INSTR 版本的



SELECT *
FROM ccicys.prpcmain
WHERE 1=1 And
OperateSite IS NOT NULL
And SUBSTR(flag,6,1)='E'
AND ((1=1) AND INSTR(RiskCode,'EYZ') +(INSTR(RiskCode,'EYZ')*INSTR(OperateSite,'0000000415')) > 1 )
lzbbob1985 2011-08-23
  • 打赏
  • 举报
回复
SELECT *
FROM ccicys.prpcmain
WHERE 1=1 And
OperateSite IS NOT NULL
And SUBSTR(flag,6,1)='E'
AND ((1=1) AND 1 = decode(RiskCode,'EYZ',1,'EYZ',DECODE(OperateSite,'0000000415',1,0),0) )


郭嘉 2011-08-23
  • 打赏
  • 举报
回复
...没用过~~~
Phoenix_99 2011-08-23
  • 打赏
  • 举报
回复
(a='**' and b='**') or (a='**') or (b='**') 。。。
==
a='**' or b = '**'
sflight 2011-08-23
  • 打赏
  • 举报
回复
用NVL 函数实现更简洁一些
eg : NVL(A,'**') = '**' AND NVL(B,'***') = '***'

17,082

社区成员

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

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