iT邦幫忙

0

SQL 取得XML資料內容並逐一顯示

  • 分享至 

  • xImage

各位好,
目前在寫SQL查詢時碰到一個問題,
ROLE_MEMBER表中,USER_SET欄位為XML。
舉例其中一筆XML資料,Element tpye會有其他如group。

<UserSet>
  <Element type="user">
    <userId>190b5641-f999-4fb8-ac94-de7d120e33a7</userId>
  </Element>
  <Element type="user">
    <userId>054cd0d6-f61f-4800-a973-cbc45c4e4c74</userId>
  </Element>
  <Element type="user">
    <userId>e25e6c03-16c6-4166-bf44-04ff3970ef28</userId>
  </Element>
  <Element type="group" isDepth="True">
    <groupId>fd63894d-a10d-44e4-a039-a7050b166d5c</groupId>
  </Element>
</UserSet>

我想要查詢結果
https://ithelp.ithome.com.tw/upload/images/20230919/20151367MbZxemTuGq.jpg
目前程式碼如下:

SELECT 
	User_Set,
    UserSet.value('@type', 'varchar(50)') AS 'Element type',
    UserSet.value('(groupId/text())[1]', 'varchar(50)') AS 'groupId',
    UserSet.value('(userId/text())[1]', 'varchar(50)') AS 'userId'
FROM 
    TB_EB_SEC_ROLE_MEMBER
CROSS APPLY 
    USER_SET.nodes('/UserSet/Element') AS UserSet(UserSet)

結果如下:
https://ithelp.ithome.com.tw/upload/images/20230919/20151367W5C2aovaYu.jpg
只會跑出XML中第一筆資料,問了GPT大神也是給我上面的程式碼
我認為應該是要從Xpath那邊下手,但不知道如何修改
懇請大家幫忙,謝謝

=========================================
更新一下
我好像耍笨了,輸出結果太多行XML看錯了
這樣的結果應該就是我要的的 ..
留著給大家看吧

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答