2017-06-21 265 views
-1

我试图将两列中的值合并为一个,但我希望它们在导出到Excel时位于另一列下。将2个SQL列合并为1

实施例:

Select 'TEST' + ' ' + 'TEST2' 

此返回

TEST TEST2 

但我想输出是:

TEST 
TEST2 

我有两列:数据1 VARCHAR(35),NULL。数据2 VARCHAR(35),NULL

我感谢您的帮助..

+0

提示:UNION(https://docs.microsoft.com/en-us/sql/ t-sql/language-elements/set-operators-union-transact-sql) – scsimon

+2

[SQL Server:如何在两个查询中使用UNION并使用WHERE子句?](https://stackoverflow.com/问题/ 5426767/sql-server-how-to-use-union-with-two-queries-that-both-have-a-where-clause) – scsimon

+0

请编辑你的问题,提供专栏及其数据类型 – PawelCz

回答

1

这是你在找什么?

Select 'test' 
union 
Select 'test2' 
0
要将换行符

串联并插入CHAR(13)。例:

PRINT 'Line1' + CHAR(13) + 'Line2' 

打印:

Line1 Line2

+0

我正在尝试在我的查询中使用它,并且您知道print不允许位于其中一列中。谢谢! – user7675421

+0

嗯我以为你想要一个_message_输出。在这种情况下,@Frivolin给出的答案将是一个 –

0

这是你在找什么:

Select 'TEST' + char(13) + 'TEST2' 

电网输出看起来是一条线,但实际上你得到两个行如果你复制粘贴

编辑,建议在另一个答案:

Select 'TEST' + char(13)+char(10) + 'TEST2' 

EDIT(基于问题的新信息):

select isnull(column1, '') + char(13) + char(10) + isnull(column2, '') 
from YourTable 
+0

PawelCz。输出仍然是测试TEST2,我想要: – user7675421

+0

下面有TEST和Test2 – user7675421

+1

复制粘贴输出到记事本,它在 – PawelCz

0

您可以使用UNION ALL作为@dmitry Bychenko放弃并在Excel中,当您导出,可以在2个单元格合并成一个小区。

SQL没有办法转换两行输出并确保它们在Excel中的一个单元格中。这是你必须自己“合并”的东西。

0

char(13)是CR。对于DOS-/Windows风格CRLF,你应该使用CHAR(13)+ CHAR(10):

Select 'TEST' + char(13)+char(10) + 'TEST2' 
+0

即使当我复制它。 – user7675421