【问题标题】:Get a list of fields out of an XML data type从 XML 数据类型中获取字段列表
【发布时间】:2012-07-20 13:58:15
【问题描述】:

给定这样的表结构:

DECLARE @Employees TABLE(EmployeeID INT ,EmployeeDetails XML)

INSERT INTO @Employees( EmployeeID ,EmployeeDetails )
VALUES ( 1 ,'<Employee><EmployeeDetails><EmployeeName> Priyanka </EmployeeName><Age> 24 </Age><Address> Argentina</Address></EmployeeDetails></Employee>')

INSERT INTO @Employees
( EmployeeID ,EmployeeDetails )
VALUES ( 2 ,'<Employee><EmployeeDetails><EmployeeName> Sarkar </EmployeeName><Age> 28 </Age><Address> Australia</Address></EmployeeDetails></Employee>')

如何创建查询以获取 EmployeeDetails 标记下的所有标记名称(而非值)的列表? (假设所有记录的结构都相同)。

所以,期望的结果是:

EmployeeName
Age
Address

山姆

【问题讨论】:

    标签: sql sql-server-2005 sqlxml


    【解决方案1】:

    试试这样的:

    SELECT
        DISTINCT T.C.value('local-name(.)[1]', 'varchar(100)')
    FROM @Employees
    CROSS APPLY EmployeeDetails.nodes('Employee/EmployeeDetails/*') AS T(C)
    

    【讨论】:

      猜你喜欢
      • 2015-03-19
      • 2020-12-24
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      相关资源
      最近更新 更多