Quantcast
Channel: 黑暗執行緒
Viewing all articles
Browse latest Browse all 2311

對SQL XML節點進行JOIN查詢

$
0
0

今天遇到的隨堂測驗,考題如下:

SQL Server有一資料表,其中Records欄為XML型別,其中包含多筆記錄,目標要將記錄展開成多筆查詢結果:

.xmljoin-tab td { padding: 3px; }
001Jeffrey2014-01-019999
001Jeffrey2014-04-0132767
002Darkthread2014-06-1065535

要實現以上需求,需動用兩項SQL功能:

  • SQL XML nodes()
    將XML型別轉成關聯式資料
  • CROSS APPLY
    以結果列的特定欄位當成參數傳給函式得到資料表後與原結果列進行JOIN

二者結合成以下語法

SELECT
    A.PlayerId, A.PlayerName,
    T.C.value('@Date', 'VARCHAR(10)') RecDate,
    T.C.value('.', 'INT') Score
FROM XMLJOIN A
CROSS APPLY A.Records.nodes('//Rec') T(C)

資料表與XML節點的JOIN查詢就完成囉~


Viewing all articles
Browse latest Browse all 2311

Trending Articles