这是SQL代码中的当前输出:
Group | USERLIST
Region 1 | <Users><USERID>ID1</USERID><USERID>ID2</USERID></Users>
Region 1 | <Users><USERID>ID3</USERID></Users>
Region 2 | <Users><USERID>ID4</USERID></Users>
我希望输出结果如下:
Group | USERLIST
Region 1 | <Users><USERID>ID1</USERID><USERID>ID2</USERID><USERID>ID3</USERID></Users>
Region 2 | <Users><USERID>ID4</USERID></Users>
这是我正在使用的当前代码。
SELECT CASE
WHEN _ID LIKE '%REG1%' THEN 'Region 1'
WHEN _ID LIKE '%REG2%' THEN 'Region 2'
WHEN _ID LIKE '%REG3%' THEN 'Region 3'
WHEN _ID LIKE '%REG4%' THEN 'Region 4'
ELSE NULL
END AS "Group"
,XMLSERIALIZE(
CONTENT XMLELEMENT(
NAME "Users",
XMLAGG(
XMLELEMENT(NAME "USERID", _USERID)
)
)
AS CLOB(30K)
) AS "USERLIST"
使用LIKE运算符的原因是因为要比较的数据的格式为xxxxREG#xxx。其中x代表数据的差异。有没有人知道如何将重复的组合成一行?