select t.b, count(1) from t where t.aID in ('3','5','6') group by t.b
确是有值的,为什么呢?aID的类型是varchar2
语句1该怎么改造,才能得到值呢?
[解决办法] 这个你查出来的'3','5','6'其实是作为一个字符串的,所以查不出来,如果想查的话,可以采用其他的办法, 比如你传来的id串为'3,5,6',你可以把它变成',3,5,6,' 然后instr(',' [解决办法] id [解决办法] ',',inParam) > 0;
[解决办法] 查询出来也只是一个字符串而已 相当于 ' '3','5','6' ' 那肯定查不到了
可以考虑分割成多行查询
select t.b, count(1) from t where t.aID in ( select replace(regexp_substr('3,5,6','[^,]+',1,level),',',' ') c1 from t1 connect by level<=length('3,5,6')-length(replace('3,5,6',',',''))+1 ) group by t.b