gpt4 book ai didi

sql - 如何获取 varchar(MAX) 字符串类型的 XML 标记的值?

转载 作者:数据小太阳 更新时间:2023-10-29 02:50:52 25 4
gpt4 key购买 nike

我正在使用 SQL Server 2016。

我有一个表employee_xml,其中有一列employee_xml_string varchar(MAX)类型。

CREATE TABLE employee_xml 
(
employee_xml_id INT IDENTITY(1,1) NOT NULL,
employee_xml_string VARCHAR(MAX)
);

employee_xml_string列存储一个 XML 字符串;例如:

<?xml version="1.0" encoding="UTF-8"?>
<Employees xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Employee>
<EmployeeNumber>58913A</EmployeeNumber>
<FirstName>Shanee</FirstName>
<LastName>McKenzie</LastName>
<GovernmentIdentificationNumber>749146551</GovernmentIdentificationNumber>
</Employee>
</Employees>

我想写 SQL 来获取 <GovernmentIdentificationNumber> 的值标签。我该怎么做?

谢谢

最佳答案

您必须将 XML 的值CAST/CONVERT 转换为 xml(所以我希望它们都是有效的 XML 值),然后您可以对转换后的值使用 XQUERY:

SELECT V.Employee_XML.value('(Employees/Employee/GovernmentIdentificationNumber/text())[1]','int') AS GovernmentIdentificationNumber
FROM dbo.employee_xml E
CROSS APPLY (VALUES(TRY_CONVERT(xml,E.employee_xml_string))) V(Employee_XML);

然而,理想情况下,您应该将 XML 数据存储为 xml;毕竟这就是它的用途。

关于sql - 如何获取 varchar(MAX) 字符串类型的 XML 标记的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55922416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com