根據特殊識別符號,將一行轉多行記錄
表中記錄如下:
select * from t;
N A
-- ----------
1 a,b
2 a,d,f
希望根據a列中的逗號,將表中記錄折分為多行,輸出結果如下:
N A
-- --
1 a
1 b
2 a
2 d
2 f
實現方法如下所示:
select * from t;
N A
-- ----------
1 a,b
2 a,d,f
希望根據a列中的逗號,將表中記錄折分為多行,輸出結果如下:
N A
-- --
1 a
1 b
2 a
2 d
2 f
實現方法如下所示:
點選(此處)摺疊或開啟
-
SQL> with t as
-
2 (select 1 n, 'a,b,aaa' a
-
3 from dual
-
4 union all
-
5 select 2, 'aa,dc,f'
-
6 from dual
-
7 union all
-
8 select 3, 'aa,a,a,a'
-
9 from dual
-
10 union all
-
11 select 6, 'aaaa,ttttttt,55555'
-
12 from dual)
-
13 select distinct level, n, regexp_substr(a, '[^,]+', 1, le
-
14 from t
-
15 connect by level <= regexp_count(a, ',') + 1
-
16 AND n = PRIOR n
-
17 AND PRIOR SYS_GUID() IS NOT NULL
-
18 order by n, level;
-
-
LEVEL N REGEXP_SUBSTR(A,'[^,]+',1,LEVEL)
-
---------- ---------- ------------------------------------
-
1 1 a
-
2 1 b
-
3 1 aaa
-
1 2 aa
-
2 2 dc
-
3 2 f
-
1 3 aa
-
2 3 a
-
3 3 a
-
4 3 a
-
1 6 aaaa
-
-
LEVEL N REGEXP_SUBSTR(A,'[^,]+',1,LEVEL)
-
---------- ---------- ------------------------------------
-
2 6 ttttttt
-
3 6 55555
-
-
已選擇13行。
-
- SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21251711/viewspace-1757788/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 命令識別符號(轉)符號
- sqlldr一行記錄拆分為多行SQL
- 特殊符號符號
- 識別符號符號
- 標準HTML識別符號 (轉)HTML符號
- 根據副檔名識別檔案型別(轉)型別
- Html 特殊符號HTML符號
- JavaScript 識別符號JavaScript符號
- Mybatis xml特殊符號轉義寫法MyBatisXML符號
- windows根據程式號查詢程式目錄Windows
- Perl 的特殊符號符號
- 常用特殊符號大全符號
- Oracle多行轉一行Oracle
- [Hive]用concat_w實現將多行記錄合併成一行Hive
- 批處理特殊符號 萬用字元與轉義符符號字元
- python的識別符號Python符號
- 06:合法 C 識別符號符號
- 《Effective Go》--空白識別符號Go符號
- oracle 識別符號規範Oracle符號
- aix 系統識別符號AI符號
- HTML 中的特殊符號HTML符號
- markdown特殊符號語法符號
- CSS中的特殊符號CSS符號
- shell中的特殊符號符號
- 箭頭特殊符號大全符號
- python-進階教程-根據欄位將記錄分組Python
- 使用去中心化識別符號 (DID) 作為識別符號元系統中心化符號
- Java註釋,識別符號,資料型別,型別轉換Java符號資料型別
- Java資料型別、識別符號Java資料型別符號
- C語言-識別符號命名C語言符號
- 識別符號與關鍵字符號
- java基本無法-識別符號Java符號
- Oracle 12.2 長識別符號Oracle符號
- latex 屬於符號和根號符號
- input禁止輸入特殊符號符號
- 萬用字元與特殊符號字元符號
- XML中輸入特殊符號XML符號
- html中的常用特殊符號HTML符號