sql-server - 如何返回以列名作为第一行的 T-SQL 查询

标签 sql-server tsql ssis

我正在编写一个 SSIS 包,以将数据从 SQL Server 2012 数据库输出到客户端的 .CSV 文件。要求是第一行是列名。下面是我为数据流任务中的源编写的查询。问题是,它总是返回列名作为最后一行,而不是第一行。为什么?我如何实现这一点?

DECLARE @Today AS DateTime= GETDATE()
DECLARE @NextPayrollDate AS DateTime

EXEC mobile.getNextPayrollDate @Today, @NextPayrollDate OUTPUT

;WITH LatestEligible (EmployeeID, LatestBillVerified) AS
(
    SELECT 
        EmployeeID, MAX(DateBillVerified) AS LatestBillVerified
    FROM 
        Inv_DataReimbursement
    GROUP BY 
        EmployeeID
)
SELECT
    'Edit Set' AS 'Edit Set', 
    'Employee No.' AS 'Employee No.'
FROM 
    LatestEligible

UNION

SELECT 
    NULL AS 'Edit Set',
    d.EmployeeID AS 'Employee No.'
FROM 
    LatestEligible d
INNER JOIN 
    Employee e ON d.EmployeeID = e.EmployeeID
INNER JOIN 
    Inv_DataReimbursement dr ON d.EmployeeID = dr.EmployeeID 
                             AND d.LatestBillVerified = dr.DateBillVerified
WHERE 
    (dr.MonthlyServiceEligible = 'true'
     OR (dr.MonthlyServiceEligible = 'false' 
         AND e.DateEnd IS NOT NULL 
         AND e.DateEnd > @NextPayrollDate))
    AND dr.ActualAmount > 0

最佳答案

How do I achieve this?

不要通过 SQL 来做。

只需勾选 Flat File Connection Manager 中的第一个数据行中的列名 框即可并保持原始查询不变。

然后将自动添加列标题,而无需合并这些额外的元数据(并且可能在 SQL 端将所有内容都转换为字符串)。

关于sql-server - 如何返回以列名作为第一行的 T-SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55766513/

相关文章:

tsql - 检查负数与正数的数量是否相等

linux - 从 Windows 到 Linux 的文件传输

json - 使用 ConvertTo-Json 转换为 JSON 时保留数据类型名称

sql-server - SQL DB2 SQL错误不正确的语法

sql-server - 尝试安装tomcat时出错?

sql-server - 在函数中返回存储过程结果

sql - 在使用今天日期的 SQL 中获取星期日期(周一至周日)

sql - 使用 sql 使用 select 查询的结果更新现有列

sql - t-sql 用 csv 字符串查找特定值

SSIS run64bitruntime on 64 bit