SQL SERVER 如何讀取類型爲XML的字段
SQL SERVER 讀取XML類型字段的方式。
操作方法
(01)先創建一個測試的臨時表:-- 測試數據-- DROP TABLE #XMLTabCREATE TABLE #XMLTab(colxml XML)INSERT INTO #XMLTab SELECT N'<Record id="1629"> <Exception type="RING_BUFFER_EXCEPTION"> <Task address="0x0062B8E8" /> <Error>9003</Error> <Severity>error</Severity> </Exception> <Exception type="BUFFER_EXCEPTION"> <Task address="0xC452BB39" /> <Error>8008</Error> <Severity>true</Severity> </Exception></Record>'INSERT INTO #XMLTab SELECT N'<Record id="1611"> <Exception type="RING_BUFFER_EXCEPTION"> <Task address="" /> <Error>7803</Error> <Severity>false</Severity> </Exception> <Exception type="BUFFER"> <Task address="0xC4445674" /> <Error>4300</Error> <Severity>right</Severity> </Exception></Record>'SELECT colxml FROM #XMLTab
(02)讀取XML字段方法有兩種,方法一:SELECTCONVERT(NVARCHAR(50),y('data(/Record/@id)')) AS [id],CONVERT(NVARCHAR(max),y('data(/Record/Exception/@type)[1]')) AS [type1],CONVERT(NVARCHAR(MAX),y('data(/Record/Exception/Task/@address)[1]')) AS [address1],e('data(/Record/Exception/Error)[1]','varchar(max)') AS [Error1],e('data(/Record/Exception/Severity)[1]','varchar(10)') AS [Severity1],CONVERT(NVARCHAR(MAX),y('data(/Record/Exception/@type)[2]')) AS [type2],CONVERT(NVARCHAR(MAX),y('data(/Record/Exception/Task/@address)[2]')) AS [address2],e('data(/Record/Exception/Error)[2]','varchar(MAX)') AS [Error2],e('data(/Record/Exception/Severity)[2]','varchar(10)') AS [Severity2]FROM #XMLTab
(03)方法二:e('(@id)[1]','VARCHAR(50)') AS [id],e('(Exception/@type)[1]','VARCHAR(50)') AS [type1],e('(Exception/Task/@address)[1]','VARCHAR(50)') AS [address1],e('(Exception/Error)[1]','VARCHAR(max)') AS [Error1],e('(Exception/Severity)[1]','VARCHAR(max)') AS [Severity1],e('(Exception/@type)[2]','VARCHAR(50)') AS [type2],e('(Exception/Task/@address)[2]','VARCHAR(50)') AS [address2],e('(Exception/Error)[2]','VARCHAR(max)') AS [Error2],e('(Exception/Severity)[2]','VARCHAR(max)') AS [Severity2]FROM #XMLTab CROSS APPLY s('/Record') as node(c1)兩種方法都可以得到下面的效果:
(04)其他的用法,比如:將同一節點下的數據合併爲一行,y('data(/Record/Exception/@type)[1]') AS [type1],y('data(/Record/Exception/@type)[2]') AS [type2],y('data(/Record/Exception/@type)'),CONVERT(NVARCHAR(MAX),y('data(/Record/Exception/@type)')),REPLACE(CONVERT(NVARCHAR(MAX),y('data(/Record/Exception/@type)')),' ',',')FROM #XMLTab
(05)測試合併結果:SELECTCONVERT(NVARCHAR(50),y('data(/Record/@id)')) AS [id],REPLACE(CONVERT(NVARCHAR(MAX),y('data(/Record/Exception/@type)')),' ',',') AS [type],REPLACE(CONVERT(NVARCHAR(MAX),y('data(/Record/Exception/Task/@address)')),' ',',') AS [address],REPLACE(CONVERT(NVARCHAR(MAX),y('data(/Record/Exception/Error)')),' ',',') AS [Error],REPLACE(CONVERT(NVARCHAR(MAX),y('data(/Record/Exception/Severity)')),' ',',') AS [Severity]FROM #XMLTab
-
MATLAB使用importdata讀取字元數據檔案並繪圖
本文首先使用importdata()讀取(匯入)含有字元和數據的文字格式數據檔案,然後介紹透過“.”+數據名的方式讀取結構數組中的數據,最後使用plot()繪製折線圖。操作方法(01)第一,首先準備數據,下圖txt數據檔案是某年12個月的月收入情況,既包含數字又包含字元。(02)第二,將該數...
-
cad中怎樣畫箭頭
操作方法(01)我們在cad裏輸入快速鍵“PL”(多段線),然後按空格鍵或回車鍵確定,確定後單擊鼠標左鍵確定箭頭第一個點,然後拖動鼠標確定箭頭直線段的第二個點。(02)完成箭頭直線段的繪製後我們開始畫箭頭部位,接着上面的操作輸入“w”,輸入箭頭起點寬度,我們輸入“5”(如果箭...
-
怎麼橋接兩個無線路由器:[1]TP-link路由器
怎麼橋接兩個無線路由器;折現先分享一下TP-link路由器橋接方法第一臺無線路由器設定(01)首先我們登入和寬帶貓連接的路由器:如圖(02)在無線設定-基本設定中設定“SSID號”、“信道”,設定固定信道號,如圖:(03)在無線設定-無線安全設定中設定無線信號加密資訊記錄該無線路...
-
百度地圖檢視座標
操作方法(01)首先,電腦開啟搜狗瀏覽器,進入百度官網。(02)在上邊我們點擊百度地圖的按鈕。(03)進入地圖上,可以看到當前自己所在城市。(04)點擊地圖下方的“地圖開發平臺”按鈕。(05)在地圖開放平臺頁面,點擊:開發文檔——座標拾取器。(06)然後在地圖中,隨意點擊一個位置,就可以查...