SQL在连接字符串时如何在两个字符串之间添加空格

9

将两个列连接在一起,希望它们以一个空格的形式显示在同一列中。但这样做会将两个数字加在一起。其中一个是 bigint,另一个是 smallint。最终将在 SSRS 报表中显示,但现在只使用 SQL 查询数据。

    (NBR +''+ ACCT_NBR) as acct,

1
在不知道数据库的情况下,我尝试回答了你的问题。下次请提供完整的信息。 - codingbiz
7个回答

20

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

MySQL

concat(NBR,' ',ACCT_NBR) as acct

SQL Server

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

6
“Does not support concat”是什么意思?我们是程序员,不是超能力者。 - Lews Therin

5

您没有提到使用哪种SQL类型,但是根据情况,您可能需要首先将值转换为字符串。对于SQLSever...

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

4

我知道这篇帖子已经得到了回答并且是正确的。但是,由于从SQL Server 2017开始,这变得非常容易,因此我想发布以下答案,以便将来有人可能会发现这很有用。

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

在SQL SERVER中,CHAR(10)可以用作空格。您可以将CHAR(10)替换为任何分隔符。例如,

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

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

1
如果是Oracle数据库,请尝试:
NBR || ' ' || ACCT_NBR as acct

虽然这段代码示例可能回答了问题,但最好在您的答案中包含一些必要的解释。就目前而言,这个答案对未来的读者几乎没有任何价值。 - oɔɯǝɹ

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

请考虑扩展您的答案,以解释您提出的解决方案的作用,这样对他人会更有用。 - Morpheu5

0

我知道已经晚了7年,但感觉我应该尝试一下。

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

这将在两个连接的项之间添加5个空格。 我测试的示例如下:

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

-3
在 Teradata SQL 中,您可以使用以下代码。它将始终提取最近的三天数据。
WHERE create_ts BETWEEN  (DATE -3 || ' ' || '00:00:00') AND (DATE -1 || ' ' || '23:59:59')

2
这与手头的问题有关吗? - pingul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接