sql - 如何使用 T-SQL 在 SQL Server 中输出非结构化文件?

标签 sql sql-server file tsql file-io

在使用 T-SQL 的 SQL Server 中,如何将具有“详细信息标题”、“详细信息”和“页脚”记录的非结构化文件输出到一个具有不同逗号分隔值计数的文件中?

这是文件输出结构的示例:

1|header|value0|date
2|detail|value1|value2|value3|date
3|detail|value1|value2|value3|date
4|detail|value1|value2|value3|date
5|header|value0|date
6|detail|value1|value2|value3|date
7|detail|value1|value2|value3|date
8|header|value0|date
9|detail|value1|value2|value3|date
footer|9

数据示例:

1|H|laptops|2013-01-30
2|D|cpu1|disk1|ram1|2013-01-30
3|D|cpu2|disk2|ram2|2013-01-30
4|D|cpu3|disk3|ram3|2013-01-30
5|H|desktops|2013-01-30
6|D|cpu4|disk4|ram4|2013-01-30
7|D|cpu5|disk5|ram5|2013-01-30
8|H|servers|2013-01-30
9|D|cpu6|disk6|ram6|2013-01-30
footer|9

感谢您的帮助!

最佳答案

我将给出一个想法,请执行此操作并更新我,将查询中的数据写入文件,请引用以下链接

http://ask.sqlservercentral.com/questions/7080/export-results-of-a-query-into-a-csvtxt-file.html

编写将为您提供输出的查询。

看起来像

假设您有 3 个表 A,b,c

A have 2 coloums
B have 3 coloums
C have 4 coloums


SELECT {WRITE Your Hedder here} as ROW

UNION

SELECT 1+'|'+2+'|'+3+'|'+4 AS ROW
(SELECT A.1,A.2,Null 3,Null 4 FROM A
UNION
SELECT B.1,B.2,B.3,Null 4 FROM B
UNION
SELECT C.1,C.2,C.3,C.4 FROM C
)

SELECT {WRITE Your Footer here} as ROW

请关注我,

我想这可以做到,但如果您使用 ETL 工具,我会容易得多。

问候

阿舒托什

关于sql - 如何使用 T-SQL 在 SQL Server 中输出非结构化文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18012543/

相关文章:

sql-server - 主键上的索引名称

mysql - 从3个表中选择数据

c# - 生成一组(相对)短的 "invitation codes"的好方法是什么

sql-server - 连接字符串中的 ApplicationIntent=ReadOnly 是什么意思

java - 创建配置.yml 文件

python - 在 Python 中打开文件时使用超时来防止死锁?

python - 在文件末尾添加或删除空字节是否安全?

sql - 如何计算postgres中的中位数

mysql - SQL 查询返回几十年来的最大值

sql - 使用连接限制结果而不计算连接结果?