SQL在concat语句之间打印一个空格

时间:2012-10-05 18:44:51

标签: sql concatenation

将两列连接在一起,只是希望它们在列中一起显示,两个数字之间有空格。它不断将两个数字加在一起。一个是bigint,另一个是smallint。最终会在SSRS报告中显示,但现在只使用SQL查询数据

    (NBR +''+ ACCT_NBR) as acct,

7 个答案:

答案 0 :(得分:12)

虽然您没有提及数据库,但请尝试

的MySQL

concat(NBR,' ',ACCT_NBR) as acct

SQL Server

CAST(NBR AS VARCHAR)+' '+CAST(ACCT_NBR AS VARCHAR) as acct

答案 1 :(得分:5)

您没有提到您正在使用的SQL的风格,但是您可能需要先将值转换为字符串。对于SQLSever ......

(Cast(NBR as varchar(20)) + ' ' + Cast(ACCT_NBR as varchar(20))) as acct,

答案 2 :(得分:1)

我知道这篇文章已经回答并且是正确的。但是想发布以下答案,因为从SQL Server 2017开始,这太容易了,someoen可能会发现这对将来有用。

CONCAT_WS(CHAR(10),Cast(NBR as varchar(20)) ,Cast(ACCT_NBR as varchar(20))) as acct

CHAR(10)可以用于SQL SERVER中的空间。您可以将CHAR(10)替换为您喜欢的任何分隔符。例如,

CONCAT_WS(',',Cast(NBR as varchar(20)) ,Cast(ACCT_NBR as varchar(20))) as acct

上面的查询将在每个被连接的字符串之间添加分隔符','。

答案 3 :(得分:0)

如果是Oracle数据库,请尝试

NBR || ' ' || ACCT_NBR as acct

答案 4 :(得分:0)

Stuff(Coalesce(', ' + [Address1], '') + Coalesce(', ' + [Address2], '') + Coalesce(', ' + [City], '') + Coalesce(', ' + [State], '') + Coalesce(', ' + [Country], '') +Coalesce('-' + [Zip], ''), 1, 1, '') AS [Address] FROM Customers

答案 5 :(得分:0)

我知道我迟到了7年,但觉得我应该尝试一下。

(NBR +space(5) + ACCT_NBR) as acct

这将在2个串联的项目之间添加5个空格。 我的测试示例如下:

select
+ N'(Contactname: '+ contactname + space(5)  + N'(Company_Name: ' + companyname + N')' + N'(Contact_Title: ' + contacttitle + N')'
from Sales.Customers

答案 6 :(得分:-3)

在Teradata SQL中,您可以使用以下内容。它将永远拉过去3天。

WHERE create_ts BETWEEN  (DATE -3 || ' ' || '00:00:00') AND (DATE -1 || ' ' || '23:59:59')