Sql server 从xml到列的T-sql数据迁移
我有一个临时表#xml,它有两列:Sql server 从xml到列的T-sql数据迁移,sql-server,xml,tsql,xpath,xquery-sql,Sql Server,Xml,Tsql,Xpath,Xquery Sql,我有一个临时表#xml,它有两列: CREATE TABLE #xml ( id int, xmlroutes xml ) INSERT INTO #xml (id, xmlroutes) (SELECT TOP 50 Id, CAST(RouteParameters as xml) as xmlroutes FROM LoggingRecords WHERE RouteParameters IS NOT NULL) 我已选择id并将xml与下一个脚本配对: (SELECT i
CREATE TABLE #xml
(
id int,
xmlroutes xml
)
INSERT INTO #xml (id, xmlroutes)
(SELECT TOP 50 Id, CAST(RouteParameters as xml) as xmlroutes FROM LoggingRecords WHERE RouteParameters IS NOT NULL)
我已选择id并将xml与下一个脚本配对:
(SELECT id, T2.Loc.query('.') as pair
FROM #xml
CROSS APPLY xmlroutes.nodes('/route/pair') as T2(Loc))
LoggingRecords包含可转换为xml的字符串(nvarchar)
我有所有记录的下一个xml结构:
<route>
<pair key="x" value="y"/>
<pair key="z" value="1"/>
<pair key="a" value="b"/>
</route>
我想从#xml表的每个记录中选择下一个数据(每个id可以与许多对关联):
select X.id,
T.N.value('@key', 'nvarchar(50)') as [Key],
T.N.value('@value', 'nvarchar(50)') as [Value]
from #xml as X
cross apply X.xmlroutes.nodes('/route/pair') as T(N)