问大家一个查询问题?
数据如下:
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