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