表a:
id jgdm
1 1;2;3
2 3;4;5表b:
jgdm jgmc
1 北京
2 沈阳
3 长春
4 成都
5 上海条件是,我得知表a中的id=1,
1.
我现在想用一句话查出a表中下面这样的一条记录
id jgmc
1 北京
1 沈阳
1 长春
不知道可不可能得到
2.
如果可以下面的,更好了
id jgmc
1 北京;沈阳;长春
id jgdm
1 1;2;3
2 3;4;5表b:
jgdm jgmc
1 北京
2 沈阳
3 长春
4 成都
5 上海条件是,我得知表a中的id=1,
1.
我现在想用一句话查出a表中下面这样的一条记录
id jgmc
1 北京
1 沈阳
1 长春
不知道可不可能得到
2.
如果可以下面的,更好了
id jgmc
1 北京;沈阳;长春
SQL> SELECT A.ID, REPLACE(WMSYS.WM_CONCAT(B.JGMC), ',', ';') NEW_JGMC
2 FROM A,
3 B,
4 (SELECT ROWNUM RN
5 FROM DUAL
6 CONNECT BY ROWNUM <= (SELECT MAX(LENGTHB(JGDM) -
7 LENGTHB(REPLACE(JGDM, ';', '')))
8 FROM A
9 WHERE ID = 1))
10 WHERE INSTR(';' || A.JGDM || ';', ';', 1, RN) > 0
11 AND SUBSTR(';' || A.JGDM || ';',
12 INSTR(';' || A.JGDM || ';', ';', 1, RN) + 1,
13 INSTR(';' || A.JGDM || ';', ';', 1, RN + 1) -
14 INSTR(';' || A.JGDM || ';', ';', 1, RN) - 1) = B.JGDM
15 AND ID = 1
16 GROUP BY ID;ID NEW_JGMC
-- --------------------------------------------------------------------------------
1 北京;沈阳;长春
from(
select a.id,b.jgmc from a
left join b on instr(';'||a.jgdm||';',';'||b.jgdm||';')>0
)
group by id;