DECLARE @xml xml 設定@xml ='<row Col1='abc' Col2='def' Col3='123' />
<row Col1='aaa' Col2='bbb' Col3='111'/>
我需要 SQL 查詢來提取 Col1、Col2、Col3 值。我不知道該怎么做,因為資料不是傳統格式,如下所示
<row>
<col1>'abc'</col1>
<col2>'def'</col2>
<col3>'123'</col3>
</row>
另外,我很抱歉,但由于郵件正文的格式問題,我很難發布詳細資訊。StackOverflow 對于初次使用的用戶和新編碼的人來說并不簡單。
MS SQL Server 2012 或更高版本。
謝謝。
uj5u.com熱心網友回復:
請嘗試以下解決方案。
沒有提供最小的可重現示例。所以,我是從臀部射擊。
SQL
-- DDL and sample data population, start
DECLARE @tbl TABLE (ID INT IDENTITY PRIMARY KEY, xmldata XML);
INSERT INTO @tbl (xmldata) VALUES
('<row Col1="abc" Col2="def" Col3="123"/>'),
('<row Col1="aaa" Col2="bbb" Col3="111"/>');
-- DDL and sample data population, end
SELECT t.*
, c.value('@Col1', 'VARCHAR(20)') AS Col1
, c.value('@Col2', 'VARCHAR(20)') AS Col2
, c.value('@Col3', 'INT') AS Col3
FROM @tbl AS t
CROSS APPLY xmldata.nodes('/row') AS t1(c);
輸出
---- ------------------------------------------ ------ ------ ------
| ID | xmldata | Col1 | Col2 | Col3 |
---- ------------------------------------------ ------ ------ ------
| 1 | <row Col1="abc" Col2="def" Col3="123" /> | abc | def | 123 |
| 2 | <row Col1="aaa" Col2="bbb" Col3="111" /> | aaa | bbb | 111 |
---- ------------------------------------------ ------ ------ ------
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/477376.html
上一篇:Material3NavigationDrawer未突出顯示當前片段的專案
下一篇:帶排序的XSL應用模板不排序
