在SQL Server中转换XML

Mar*_*One 2 xml sql sql-server

我有一个数据库表,其中我有一些XML数据类型的数据.

以下是该列中某些数据的示例.

<locale en-US="Test &amp; Data" />
Run Code Online (Sandbox Code Playgroud)

有没有办法只提取SQL服务器中的"测试和数据"字样.有内置功能吗?

Lui*_*aro 5

尝试这样的事情.

如果您有XML变量:

declare @xml XML = '<locale en-US="Test &amp; Data" />';

select 
  data.node.value('@en-US', 'varchar(11)') my_column
from @xml.nodes('locale') data(node);
Run Code Online (Sandbox Code Playgroud)

在你的情况下,对于一个表的列(抱歉没有先给出这个例子):

create table dbo.example_xml
(
    my_column XML not null
);
go

insert into dbo.example_xml
values('<locale en-US="Test &amp; Data" />');
go

select
  my_column.value('(/locale/@en-US)[1]', 'varchar(11)') [en-US]
from dbo.example_xml;
go
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.