当前位置: 代码迷 >> Oracle开发 >> 请问一个条件语句的条件限定范围,小弟我的指导老师说比较难写
  详细解决方案

请问一个条件语句的条件限定范围,小弟我的指导老师说比较难写

热度:29   发布时间:2016-04-24 07:19:50.0
请教一个条件语句的条件限定范围,我的指导老师说比较难写。
表TABLE大致如下
  字段A 字段B
  -----------------
  1. FLAG tang  
  2. FLAG song
  3. OTHER song 

我现在要写一个查询语句,通过条件 “字段A = FLAG” 把 tang 给查询出来的同时不把 song 给查询出来,因为第3条记录中song还关联了 OTHER.

我原本想的是 select 字段B FROM TABLE WHERE 字段A IN ( FLAG )
但是没有用,上面两个语句会把记录1和2都查出来,而我只希望查出记录1。
请问有高手能写出来吗?

------解决方案--------------------
SQL code
with t(a,b) as(select 'FLAG','tang' from dualunion select 'FLAG','song' from dualunion select 'OTHER','song' from dual)select b from t where a='FLAG'    and not exists (select * from t t1 where t1.b=t.b and t1.a<>'FLAG');/*B------tang*/
------解决方案--------------------
不好意思发错了
SQL code
select a.字段A, a.字段B from tmptb awhere a.字段B not in (select 字段B from tmptb where 字段A <> 'FLAG') and a.字段A='FLAG'