我有一个包含2个字段(ID和配置文件)的表。
表有很多记录,但按ID唯一。配置文件的长度为1000个字符,每个10个字符基本上是一个配置文件代码。一些ID可能只有1个代码,而其他ID有很多。
我不知道为什么桌子是这样设计的。
所以一条记录可能看起来像:
ID PROFILE
BOB BM BS DM FM IC IC6 IL IM JN101 MM XC XM XR
BILL ZZ XY
有没有一种方法可以拆分配置文件字段,创建新行
它看起来像:
ID PROFILE
BOB BM
BOB BS
BOB DM
...
BILL ZZ
BILL XY
我真的很想能够以某种方式创建一个视图。
假定ID不包含空格,并从here借用分隔符拆分查询,将拆分字符更改为空格并过滤出空的概要文件值,可以使用XMLTABLE()
查询来进行; >
SELECT sd.ID, si.item as PROFILE
from TEST sd
,XMLTABLE('$doc/items/item'
PASSING XMLPARSE(DOCUMENT CAST( '<items><item>'
|| replace(sd.PROFILE , ' ' , '</item><item>')
|| '</item></items>' as CLOB
)
) as "doc"
COLUMNS
ITEM VARCHAR(255) PATH '.'
) si
WHERE si.item <> ''