Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使没有记录,也在SQL中生成空的xml根节点_Sql_Xml_Sql Server 2008 - Fatal编程技术网

即使没有记录,也在SQL中生成空的xml根节点

即使没有记录,也在SQL中生成空的xml根节点,sql,xml,sql-server-2008,Sql,Xml,Sql Server 2008,从sql生成空\null xml根节点时出现问题。这是我正在研究的结构的示例: <Departments> <Department> <Employees> <Employee> <Name></Name> <ID></ID> </Employee> </Emp

从sql生成空\null xml根节点时出现问题。这是我正在研究的结构的示例:

<Departments>
    <Department>
        <Employees>
         <Employee>
            <Name></Name>
            <ID></ID>
         </Employee>
        </Employees>
    </Department>
    </Departments>
如果有记录,xml结构就正常了,但我的问题是,如果没有部门记录,就根本没有节点。如何在xml中至少显示空节点

如果没有部门记录,xml将为:

<Departments>
  <ReportDate>2016-08-11T16:31:22.960</ReportDate>
</Departments>
我喜欢的是:

<Departments>
  <ReportDate>2016-08-11T16:31:22.960</ReportDate>
  <Department />
</Departments>

我想知道你的问题。你可以试试下面的概念

SELECT ISNULL(s.lmx, '<Users></Users>')
FROM 
    (
        select 1 as tag, null as parent,
        FirstName as [User!1!FirstName!Element],
        LastName as [User!1!LastName!Element]
        FROM Users
        FOR XML EXPLICIT
    ) AS s(lmx)

我也面临着同样的问题,我从你的问题中得到了暗示。你可以试试下面的概念

SELECT ISNULL(s.lmx, '<Users></Users>')
FROM 
    (
        select 1 as tag, null as parent,
        FirstName as [User!1!FirstName!Element],
        LastName as [User!1!LastName!Element]
        FROM Users
        FOR XML EXPLICIT
    ) AS s(lmx)

我也遇到了同样的问题,我从

中得到了提示:使用一个具有1行的派生表,并对@Departments的查询执行外部应用

选择getdate作为ReportDate, 选择D.名称, isnullD.Employees,作为雇员 从中选择null作为TN 外敷 选择D.名称, 选择E.名称, 电子身份证 来自@Employee E 其中E.DID=D.DID 对于xml路径“Employee”,元素xsini,键入 作为雇员 来自@Department as D as D 对于xml路径“Departments”,键入 对于xml路径“Departments”,键入
使用一个具有1行的派生表,并对@Departments执行外部应用查询

选择getdate作为ReportDate, 选择D.名称, isnullD.Employees,作为雇员 从中选择null作为TN 外敷 选择D.名称, 选择E.名称, 电子身份证 来自@Employee E 其中E.DID=D.DID 对于xml路径“Employee”,元素xsini,键入 作为雇员 来自@Department as D as D 对于xml路径“Departments”,键入 对于xml路径“Departments”,键入
所以实际上有记录,但名称和ID都是空的,而实际版本正在使用它?如果有员工记录,就可以了,因为整个结构都是xml格式的。问题是当没有员工记录,甚至没有显示xml时。因此,实际上有记录,但名称和ID为空,并且实际版本正在使用它?如果有员工记录,就可以了,因为整个结构都是xml格式的。问题是当没有员工记录,甚至没有显示xml时,我也遇到了这个问题。只是想知道是否有一种更优雅的方式来做这件事。我也遇到过这个。只是想知道是否有一个更优雅的方式来做到这一点。