现在存在这样的结构 :
一个表A中某个字段selected存储的是选择项 :
code    selected 
11    'A','B','C','D'
12     'A','B'
........还有一个表B中存在是返回的选择结果 :
id   code   itemselected 
 1     11       A 
 2     11       B
 3     11       C
 4     11       E
 5     11       9
 ..........如果返回的B.itemselected 值在A.selected中存在那么要计算有多少个?如果不是其中的统一记为
‘其他’项来计算数量, 不知道怎么实现这样的sql语句?
  

解决方案 »

  1.   

    select b.code,count(sign(instr(a.selected,b.itemselected)),1,1) as num,count(sign(instr(a.selected,b.itemselected)),0,1) as qita
    from a,b
    where b.code=a.code(+)
    group by b.code
      

  2.   

    select b.code,decode(instr(a.selected,b.itemselected,1,1)>0,b.itemselected,'其他') itselected,count(*) num from a,b
    where a.code=b.code
    group by b.code,decode(instr(a.selected,b.itemselected,1,1)>0,b.itemselected,'其他')
      

  3.   

    谢谢指点! 
      不过可能需要改为这样 :  select b.code,decode(instr(a.selected,b.itemselected,1,1),0,'其他',b.itemselected) 
      itselected,count(*) num 
      from squestion a, sanswer b
      where a.code=b.code
      group by b.code,decode(instr(a.selected,b.itemselected,1,1),0,'其他',b.itemselected)