问大家一个查询问题?
数据如下:
data1 number data2
20 999 100
2001 900 20
30 1000 100
2005 976 20
2009 324 20
40 1240 100
2007 222 20
2013 567 20
要求如下:
查出data2 是100或者是20的数据,同时要求如果data2是100 的话那么data1必须是20
即查出的结果只能是:
20 999 100
2001 900 20
2005 976 20
2009 324 20
2007 222 20
2013 567 20
请问大家这个sql应该怎么写?
还有一个问题顺便问下大家,就是我用wm _concat(column) 这个函数侠侣特别低,而且我发现这个函数在有的oracle环境下查出来的数据不对,是一串看不懂的字符串
比如:
name
zhang
li
wang
要的效果是name,zhang,li,wang
但是查出来后成为了 "........weblogic.service..........." 乱起八糟一串
请问这个应该怎么办
------解决方案----------------------1.查出data2 是100或者是20的数据,同时要求如果data2是100 的话那么data1必须是20
select * from t where (t.data2=100 and t.data1=20) or (t.data2=20);
--2.如果不支持WM_CONCAT,那就选择递归查询
select t1.c1 from (select c1,rownum c2 from t) t1 start with t1.c2=1 connect by prior t1.c2 = t1.c2 - 1