如何在Bat文件的MSSQL输出中实现字段换行显示?
解决MSSQL查询字段每行输出的问题
要让name和age两个字段的结果每行显示一个值,替代原来的逗号分隔格式,直接修改SQL查询语句就能实现,以下是两种实用方案:
方案1:按列批量输出(先输出所有name,再输出所有age)
用UNION ALL把两个字段的查询结果合并,注意要把数值类型的age转成字符串,避免类型不兼容:
sqlcmd -S .\database -U sa -P password1 -d family -Q "select name from setup union all select cast(age as varchar) from setup" -w -h -1 -o "C:\familysave.txt"
方案2:按记录拆分输出(每条记录的name、age依次换行)
如果需要每条记录的name和age紧挨着换行输出,用CROSS APPLY把单条记录的两个字段拆成两行:
sqlcmd -S .\database -U sa -P password1 -d family -Q "select val from setup cross apply (values (name), (cast(age as varchar))) as t(val)" -w -h -1 -o "C:\familysave.txt"
参数说明
- 移除了原命令的
-s",",因为现在不需要字段分隔符,每个结果行就是单个字段值 -h -1用于隐藏表头,-w设置输出宽度避免内容截断
内容的提问来源于stack exchange,提问作者ValComputers
相关产品推荐
相关产品推荐

