Sql SSMS-每个SELECT语句都会创建额外的空行-如何抑制?

Sql SSMS-每个SELECT语句都会创建额外的空行-如何抑制?,sql,ssms,Sql,Ssms,如果我在SQL Management Studio中设置为生成文本输出(而不是网格或文件),并运行以下操作: SET NOCOUNT ON SELECT '1' SELECT '2' SELECT '1' 我明白了: 1 2 1 如何在每行之后删除额外的新行? 我在工具->选项中设置为默认值,如下所示: 1.以制表符分隔的输出格式 2.结果集中排除的列标题 3.创建了一个新查询 更新: 为了简单起见,显示前面的查询。请把这个作为一个问题: SELECT 1+2 SELECT 'A FOX

如果我在SQL Management Studio中设置为生成文本输出(而不是网格或文件),并运行以下操作:

SET NOCOUNT ON
SELECT '1'
SELECT '2'
SELECT '1'
我明白了:

1

2

1
如何在每行之后删除额外的新行? 我在工具->选项中设置为默认值,如下所示: 1.以制表符分隔的输出格式 2.结果集中排除的列标题 3.创建了一个新查询

更新: 为了简单起见,显示前面的查询。请把这个作为一个问题:

SELECT 1+2
SELECT 'A FOX'
SELECT 1,2,3
希望在行之间看不到额外的行,例如:

3
A FOX
1  2  3

您将获得三个独立的结果集-每个选择一个

为了获得单个结果集(具有重复项),您需要
UNION ALL
选择:

SET NOCOUNT ON
SELECT '1' UNION ALL
SELECT '2' UNION ALL
SELECT '1'
有关详细信息,请参阅MSDN上的


更新:

你想做的是不可能的。在每次选择中,字段的类型和编号都不同-您不能
UNION
它们


你不能有一个结果集每行有不同的列数或每行有不同的数据类型。

好吧,我决定发布答案,而不是发表评论,因为它可能会帮助别人。 我需要将存储过程的输出粘贴到Excel中,并从模板中应用“复制格式”。 我这样解决了这个问题:

我的初步陈述

SELECT 'Report Header'
SELECT ''
SELECT 'Line of report',1
SELECT 'Line of report',23
SELECT * FROM SUBREPORT
SELECT 'SUBTOTAL:',(select count(*) from another_table)
SELECT ''
SELECT 'REPORT GENERATED AT ', GetDate()
我更新了以下内容:

SELECT 'Report Header'
SELECT '[NEWLINE]'
SELECT 'Line of report',1
SELECT 'Line of report',23
SELECT * FROM SUBREPORT
SELECT 'SUBTOTAL:',(select count(*) from another_table)
SELECT '[NEWLINE]'
SELECT 'REPORT GENERATED AT ', GetDate()
因为额外的空行会破坏格式,所以我必须删除它们。 我将文本输出粘贴到Word中。 将“^p^p”替换为“^p”,然后将“[NEWLINE]”替换为“”(无)。 将粘贴复制到Excel并从模板复制格式。 完成了


如果有人能提出更优雅的解决方案,我将不胜感激。

@Oded-感谢您的加入。我知道这一点,但我给出的例子很简单。你们的更新如何表明Oded的答案不能解决你们的问题?仍然有3个
SELECT
子句,因此仍然会得到3个不同的结果集,每个结果集之间都有一条空行。UNION ALL只连接相似的结果集。在我更新的语句中,如果我附加UNION ALL,我会得到以下错误:使用UNION、INTERSECT或EXCEPT运算符组合的所有查询在其目标列表中必须具有相同数量的表达式。@ilshat-我认为您不能这样做(无论如何,不能使用不同数量的列)。添加新行是选择结果的默认行为。您需要这样做的原因是什么?只是想知道是否有不同的解决方案。你找到问题的答案了吗?我也有类似的问题。