0
需要查询,显示单排多行要将单行和单行显示多行为多行?
例如:
A,B,C,d,E,F
变化到
甲
乙
C
D
Ë
˚F
查询,以显示多个行单列
例如:
甲
乙
Ç
d
Ë
˚F
变化到
A,B,C,d,E,F
需要查询,显示单排多行要将单行和单行显示多行为多行?
例如:
A,B,C,d,E,F
变化到
甲
乙
C
D
Ë
˚F
查询,以显示多个行单列
例如:
甲
乙
Ç
d
Ë
˚F
变化到
A,B,C,d,E,F
逗号/字符串表:How can I select from list of values in Oracle
select column_value from
table(sys.dbms_debug_vc2coll('One', 'Two', 'Three', 'Four'));
SELECT trim(regexp_substr('Err1, Err2, Err3', '[^,]+', 1, LEVEL)) str_2_tab
FROM dual
CONNECT BY LEVEL <= regexp_count('Err1, Err2, Err3', '[^,]+')
/
逗号/字符串表格:
WM_CONCAT() in 10g as jle mentioned or LISTAGG() in 11g.
SQL> with t as (
2 select 'A,B,C,D,E,F' x from dual
3 )
4 select substr(x,(rownum-1)*2+1,1) from t
5 connect by level <= regexp_count(x,',')+1
6/
S
-
A
B
C
D
E
F
SQL> with t as (
2 select 'A,B,C,D,E,F' x from dual
3 )
4 select listagg(s,',') within group (order by s) str
5 from (
6 select substr(x,(rownum-1)*2+1,1) s from t
7 connect by level <= regexp_count(x,',')+1
8 )
9/
STR
---------------
A,B,C,D,E,F
传统上,这是一个表示层问题,并且在数据库中使用逗号分隔值是一种反模式/代码异味。关系数据库设计模式用于规范化数据,而不是逗号分隔列表。你有没有一个用例说明你为什么需要去取消你的数据结构?也许我们可以用不同的模式指出你不需要的模式。 – MatBailie
尝试wm_concat函数 – jle