如果其他地方已经回答了类似的问题,请原谅我,但此时我还没有找到。
我试图格式化SQL Server查询的结果(通过sqlcmd),以便输出是一个CSV文件,首先是列标题,然后是值。查询将只返回一个记录的值。
作为一个例子,这里有一条我可以从桌子上拿出来的记录:
InputFileName InputFileSizeBytes JobId Steps NumSteps
------------- ------------------ ----- ----- --------
TestData.dat 1024 32768 1 2
有了这些数据,我想生成一个如下所示的CSV文件:
InputFileName,TestData.dat
InputFileSizeBytes,1024
JobId,32768
Steps,1
NumSteps,2
到目前为止,我所做的一切都没有奏效。例如,我尝试使用常量字符串UNION
值,并给它们一个顺序:
SET NOCOUNT ON;
SELECT 'InputFileName' AS InputFileName,
'InputFileSizeBytes' AS InputFileSizeBytes,
'JobId' AS JobId,
'Steps' AS Steps,
'NumSteps' AS NumSteps,
'ClientEmailMessage' AS ClientEmailMessage,
'ClientContactInfo' AS ClientContactInfo,
'DTInQueueUTC' AS DTInQueueUTC,
1 AS ordering
FROM HS_JOB_QUEUE
UNION
SELECT InputFileName,
InputFileSizeBytes,
JobId,
Steps,
NumSteps,
ClientEmailMessage,
ClientContactInfo,
DTInQueueUTC,
2 AS ordering
FROM HS_JOB_QUEUE
WHERE JobId = 79000
ORDER BY ordering;
这根本不起作用 - sqlcmd吐出一个错误,说明常量不能用于UNION
操作。
您对如何使其发挥作用有任何建议吗?