C# 如何为sql中的空/空值列生成带有打开和关闭标记的XML?
我正在使用SQLXML。我想为sql中的空/空值列生成带有open和close标记的XML。请查找下表并查询: 表: 环境管理计划: 环境管理计划详情:C# 如何为sql中的空/空值列生成带有打开和关闭标记的XML?,c#,sql,json,xml,C#,Sql,Json,Xml,我正在使用SQLXML。我想为sql中的空/空值列生成带有open和close标记的XML。请查找下表并查询: 表: 环境管理计划: 环境管理计划详情: +-------+------------+----------------+ | empid | empaddress | empemail | +-------+------------+----------------+ | 1 | Chennai | mail1@mail.com | | 2 | Mad
+-------+------------+----------------+
| empid | empaddress | empemail |
+-------+------------+----------------+
| 1 | Chennai | mail1@mail.com |
| 2 | Madurai | mail2@mail.com |
| 3 | Mumbai | NULL |
+-------+------------+----------------+
Sql查询:
select A.empid,A.empname,
(select B.empaddress,isnull(B.empemail,'') as empemail from empdetail B where A.empid=B.empid for xml path('EmployeeDetails'),type)
from emp A
where A.empid=1 for xml path('root')
此查询提供以下预期数据:
<root>
<empid>1</empid>
<empname>Arul</empname>
<EmployeeDetails>
<empaddress>Chennai</empaddress>
<empemail>mail1@mail.com</empemail>
</EmployeeDetails>
</root>
<root>
<empid>3</empid>
<empname>Nivi</empname>
<EmployeeDetails>
<empaddress>Mumbai</empaddress>
<empemail></empemail>
</EmployeeDetails>
</root>
1.
海芋
钦奈
mail1@mail.com
但是当我移动到empid 3时,这个查询会给出这个标签:
<root>
<empid>3</empid>
<empname>Nivi</empname>
<EmployeeDetails>
<empaddress>Mumbai</empaddress>
<empemail />
</EmployeeDetails>
</root>
3.
尼维
孟买
但我想要打开和关闭标记,即使列值为NULL。如下图所示:
<root>
<empid>1</empid>
<empname>Arul</empname>
<EmployeeDetails>
<empaddress>Chennai</empaddress>
<empemail>mail1@mail.com</empemail>
</EmployeeDetails>
</root>
<root>
<empid>3</empid>
<empname>Nivi</empname>
<EmployeeDetails>
<empaddress>Mumbai</empaddress>
<empemail></empemail>
</EmployeeDetails>
</root>
3.
尼维
孟买
是表示空字段的标准方式
可以使用空格或其他值替换该值:
select e.empid, e.empname,
(select ed.empaddress, coalesce(ed.empemail, ' ') as empemail
from empdetail ed
where e.empid = ed.empid
for xml path('EmployeeDetails'), type
)
from emp e
where e.empid = 3
for xml path('root')
是一个dbfiddle。根据Xml规范,右尖括号中的标记名是可选的。所以不应该有任何理由改变你的代码。网络库不会给出您要求的结果。我会让一切保持原样的。兄弟,一切正常。所以,我需要给单个空间,而不是空的空间。谢谢,兄弟。