Sql server 在T-SQL中查询之前将字符串转换为XML数据类型
如何将字符串转换为XML数据类型,以便以XML形式查询数据: 例如(感谢“mellamokb the Wise”,他为此提供了原始SQL) 如果xmlstring是XML类型,下面的代码可以正常工作(请参阅) 但是,如果xmlString的类型为varchar,即使我正在将该字符串转换为XML(),我也会收到一个错误:Sql server 在T-SQL中查询之前将字符串转换为XML数据类型,sql-server,xml,tsql,Sql Server,Xml,Tsql,如何将字符串转换为XML数据类型,以便以XML形式查询数据: 例如(感谢“mellamokb the Wise”,他为此提供了原始SQL) 如果xmlstring是XML类型,下面的代码可以正常工作(请参阅) 但是,如果xmlString的类型为varchar,即使我正在将该字符串转换为XML(),我也会收到一个错误: 你可以在一个额外的十字架上施法 select id, T.N.value('@Name', 'varchar(50)') as name from Data cro
你可以在一个额外的十字架上施法
select id,
T.N.value('@Name', 'varchar(50)') as name
from Data
cross apply (select cast(xmlstring as xml)) as X(X)
cross apply X.X.nodes('/Holidays/Summer/Regions/Destinations/Destination') T(N)
转换为XML可能存在性能问题。看一看
select id, name
from Data
cross apply (
select Destination.value('data(@Name)', 'varchar(50)') as name
from CONVERT(xml,[xmlstring]).nodes('/Holidays/Summer/Regions/Destinations/Destination') D(Destination)
) Destinations(Name)
select id,
T.N.value('@Name', 'varchar(50)') as name
from Data
cross apply (select cast(xmlstring as xml)) as X(X)
cross apply X.X.nodes('/Holidays/Summer/Regions/Destinations/Destination') T(N)