我有一个查询,它以sql
中的以下格式输出Column1 Column2 Column3
X Y Z
A B C
我想要的是将该查询的输出导出到txt文件中,列数据为|分隔。例如:
Column1|Column2|Column3
X|Y|Z
A|B|C
任何帮助将不胜感激!!!
答案 0 :(得分:0)
通常查询结果集并非易事。在我看来,有两种方法:
FOR XML RAW
将结果集转换为XML并使用XML的强大功能来处理元素,节点和属性对于CSV方法,您会发现大量旧问题。 Start here
对于通用查询方法,请看一下:
DECLARE @tbl TABLE(Column1 VARCHAR(100),Column2 VARCHAR(100),Column3 VARCHAR(100));
INSERT INTO @tbl VALUES ('X','Y','Z'),('A','B','C');
SELECT STUFF(r.value(N'text()[1]',N'nvarchar(max)'),1,1,'') AS Concatenated
FROM
(
SELECT
(
SELECT * FROM @tbl AS Tbl FOR XML RAW,TYPE --<-- This is your existing query
)
) AS A(x)
OUTER APPLY
( SELECT x.query
(N'
for $r in /row
return
<row>
{
for $a in $r/@*
return concat("|",$a)
}
</row>
')
) AS B(y)
OUTER APPLY y.nodes(N'/row') AS C(r);