比如说,在A表中一个记录某个字段的值为"2;3".
在B表中,有两条记录.
1.  一条code的值为2 lable为"你"
2.  一条code的值为3 lable为"我"然后我希望在查询的时候两个值能匹配.
比如说我查到A表中记录为"2;3".
查询返回的结果为"你;我".这样有没有办法实现呀?

解决方案 »

  1.   

    where ';'||'2;3'||';' like '%;'||code||';%'
      

  2.   

    select replace(wm_concat(label),',',';') name from a,b where ';'||'2;3'||';' like '%;'||name||';%'
    借鉴
      

  3.   

    以此为条件,能查询出符合的记录,但要拼成一条,特别还要按顺序的话,就得使用聚合函数
    如果是11g r2的数据库,可以使用listagg()within group()来实现,如果是10g,试试wm_concat,不保证能按原来的顺序如果表大的话,性能会很差的。其实在实际应用中,最好再程序端,把2;3拆开,一个一个在数据库里查,然后在程序里拼起来,很容易实现,也能大大提高性能
      

  4.   

     where instr(';' || '2;3' || ';',';' || code || ';')>0