1.连接符为||
select * from 表 where 字段值 like '%'||字段||'%'
2.多行转成一行以逗号分割
select workno, wmsys.wm_concat(name)
from table group by workno;
3.列转行
SELECT DocumentID,substr(a.AuthDept, instr(a.AuthDept, ',', 1, levels.lvl) + 1, instr(a.AuthDept, ',', 1, levels.lvl + 1) -(instr(a.AuthDept, ',', 1, levels.lvl) + 1)) as AuthDept,Chargeuser
FROM
(SELECT DocumentID,',' || to_char(AuthDept) || ',' AS AuthDept,(length(to_char(AuthDept) || ',') - nvl(length(REPLACE(to_char(AuthDept), ',')), 0))/1 AS cnt,to_char(Chargeuser) as Chargeuser
FROM T_ChapAuth) a,
(SELECT rownum AS lvl
FROM (SELECT (MAX(length(to_char(AuthDept) || ',') - nvl(length(REPLACE(to_char(AuthDept), ',')), 0)))/1 max_len FROM T_ChapAuth)
CONNECT BY LEVEL <= max_len) levels
WHERE levels.lvl <= a.cnt
ORDER BY DocumentID,levels.lvl