spi*_*ire 2 sql oracle oracle11g
我有桌子:
ID |Values
-----+--------------------------------
1 |AB,AD
2 |AG, ... ,BD
3 |AV
Run Code Online (Sandbox Code Playgroud)
我怎样才能将其转换为:
ID |Value
-----+------
1 |AB
1 |AD
2 |AG
... |...
2 |BD
3 |AV
Run Code Online (Sandbox Code Playgroud)
使用内置的XML函数,您可以这样做:
with sample_data as
(
select 1 id, 'AB,AD' vals from dual union all
select 2, 'AG,AK,AJ,BA,BD' from dual union all
select 3, 'AV' from dual
)
select id, cast(t.column_value.extract('//text()') as varchar2(10)) val
from sample_data,
table( xmlsequence( xmltype(
'<x><x>' || replace(vals, ',', '</x><x>') || '</x></x>'
).extract('//x/*'))) t;
Run Code Online (Sandbox Code Playgroud)
结果:
ID VAL
--- -----
1 AB
1 AD
2 AG
2 AK
2 AJ
2 BA
2 BD
3 AV
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7524 次 |
| 最近记录: |