You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQL Server查询结果按‘列名=数据’格式导出至扁平文件

实现SQL Server数据导出为指定键值对格式的扁平文件

方法一:直接修改SQL查询生成目标格式

修改原有查询,通过CROSS APPLY将每条记录的字段转换为单独行,并拼接成要求的键值对格式:

SELECT 
    CONCAT(col_name, ' = ', col_value, CASE WHEN col_name != 'TransactionNumber' THEN ',' ELSE '' END) AS output_line
FROM 
    [DB].[dbo].[Message]
CROSS APPLY (
    VALUES
        ('Description', CAST([Description] AS VARCHAR(MAX))),
        ('MessageDescription', CAST([MessageDescription] AS VARCHAR(MAX))),
        ('CardNumber', CAST([CardNumber] AS VARCHAR(MAX))),
        ('TimeStamp_Server', CONVERT(VARCHAR(10), [TimeStamp_Server], 120)), -- 按示例截取日期部分
        ('CardHolderID', CAST([SPMDescription] AS VARCHAR(MAX))),
        ('FirstName', CAST([FirstName] AS VARCHAR(MAX))),
        ('MiddleName', CAST([MiddleName] AS VARCHAR(MAX))),
        ('LastName', CAST([LastName] AS VARCHAR(MAX))),
        ('CardStatusID', CAST([CardStatusID] AS VARCHAR(MAX))),
        ('CardStatusDescription', CAST([CardStatusDescription] AS VARCHAR(MAX))),
        ('Imprint', CAST([Imprint] AS VARCHAR(MAX))),
        ('TransactionNumber', CAST([TransactionNumber] AS VARCHAR(MAX)))
) AS cols(col_name, col_value)
WHERE 
    CONVERT(varchar(10), TimeStamp_Server, 120) = CONVERT(varchar(10), GETDATE(), 120)

执行该查询后,直接将结果导出为文本文件即可,每行对应一个键值对条目。

方法二:用PowerShell处理已有CSV文件

如果已经导出了标准CSV文件,可通过PowerShell脚本将其转换为目标格式:

# 替换为你的输入CSV路径和输出文本路径
$inputPath = "C:\export\original_data.csv"
$outputPath = "C:\export\formatted_data.txt"

$csvData = Import-Csv -Path $inputPath

foreach ($row in $csvData) {
    $properties = $row.PSObject.Properties
    foreach ($index in 0..($properties.Count-1)) {
        $prop = $properties[$index]
        $value = if ([string]::IsNullOrEmpty($prop.Value)) { "" } else { $prop.Value }
        if ($index -eq $properties.Count-1) {
            Write-Output "$($prop.Name) = $value"
        } else {
            Write-Output "$($prop.Name) = $value,"
        }
    }
    Write-Output "" # 每条记录间加空行分隔,可按需删除
} | Out-File -Path $outputPath -Encoding UTF8

方法三:通过SSIS实现自动化转换

如果需要定期自动化导出,可使用SQL Server Integration Services(SSIS):

  1. 创建数据流任务,从SQL Server源读取数据;
  2. 添加脚本组件(转换类型),在脚本中遍历每条记录的字段,生成对应的键值对行;
  3. 将脚本组件的输出连接到平面文件目标,完成导出。

内容的提问来源于stack exchange,提问作者JoeMarvel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 03:00:59