【发布时间】:2018-08-24 09:37:12
【问题描述】:
来自stackoverflow的亲爱的人
我目前正在研究一种从数据库中导出数据的机制。每条记录大约有 30 个属性,我只想导出那些具有实际值的属性。
如果解释不够准确,举个例子:
+----+-----------+------------+---------+--------+
| ID | Name | Profession | Country | Salary |
+----+-----------+------------+---------+--------+
| 1 | John Doe | NULL | USA | 5000 |
+----+-----------+------------+---------+--------+
| 2 | Jane Doe | Painter | NULL | NULL |
+----+-----------+------------+---------+--------+
| 3 | Jonas Doe | Butcher | England | 8000 |
+----+-----------+------------+---------+--------+
Expected outputs:
John Doe: John Doe, USA, 5000
Jane Doe: Jane Doe, Painter
Jonas Doe: Jonas Doe, Butcher, England, 8000
这些输出应在 XML 文件中生成。
如果可能的话,数据库中的每条记录都应该可以做到这一点。 我正在寻找一个函数来检查属性是否具有值,并根据该值将其添加到导出文件中。可惜我找不到类似的东西。
编辑: 到目前为止,我所做的只是编写查询以获取所有可能的属性:
CREATE PROCEDURE export @id int AS
BEGIN
SELECT Name,Profession,Country,Salary FROM Employee
WHERE ID = @id;
END
GO
【问题讨论】:
-
从表中选择姓名,concat(Name,',', Profession ,',', Country,',',Salary)
-
我也在考虑这个,但是如果可能的话导出格式应该是xml格式...所以我真的不知道如何申请。
-
然后更新您的问题以显示您真正追求的是什么。您可以简单地添加
FOR XML。 -
您也可以将逗号分隔值转换为 XML,但请发布您想要的内容...
-
这样做了,非常感谢。我会试一试,让你知道结果如何
标签: sql-server tsql sqlbulkcopy