当前位置: 代码迷 >> Oracle技术 >> 请问一个select语句的条件写法
  详细解决方案

请问一个select语句的条件写法

热度:46   发布时间:2016-04-24 08:28:37.0
请教一个select语句的条件写法

┏━━━━━┯━━━━┯━━━━━┓
┃id │det │flag ┃
┠─────┼────┼─────┨
┃ 10011│ 1│null ┃
┠─────┼────┼─────┨
┃ 10021│null │null ┃
┠─────┼────┼─────┨
┃1003A │ 2│A ┃
┠─────┼────┼─────┨
┃1003B │ 3│null ┃
┠─────┼────┼─────┨
┃1004A │null │A ┃
┗━━━━━┷━━━━┷━━━━━┛

这样一个表,选出det不为空的,如果id末尾为A或B并且flag不为空的也选上,结果如下:

┏━━━━━┯━━━━┯━━━━━┓
┃id │det │flag ┃
┠─────┼────┼─────┨
┃ 10011│ 1│null ┃
┠─────┼────┼─────┨
┃1003A │ 2│A ┃
┗━━━━━┷━━━━┷━━━━━┛


------解决方案--------------------
where det is not null or (substr(id,-1) in ('A','B') and flag is not null)
------解决方案--------------------
SQL code
where det is not null and((substr(id,-1) in ('A','B') and flag is not null )or substr(id,-1) not in ('A','B'))
------解决方案--------------------
SQL code
where det is not null and((substr(id,-1) in ('A','B') and flag is not null )or substr(id,-1) not in ('A','B'))
  相关解决方案