【问题标题】:SQL print a space between concat statementsSQL 在 concat 语句之间打印一个空格
【发布时间】:2012-09-26 23:06:41
【问题描述】:

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

    (NBR +''+ ACCT_NBR) as acct,

【问题讨论】:

  • 在不了解数据库的情况下尝试了您的问题。下次你应该提供完整的信息

标签: sql concatenation


【解决方案1】:

我知道我迟到了 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

【讨论】:

    【解决方案2】:

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

    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】:
      Stuff(Coalesce(', ' + [Address1], '') + Coalesce(', ' + [Address2], '') + Coalesce(', ' + [City], '') + Coalesce(', ' + [State], '') + Coalesce(', ' + [Country], '') +Coalesce('-' + [Zip], ''), 1, 1, '') AS [Address] FROM Customers
      

      【讨论】:

      • 请考虑扩展您的答案以解释您提出的解决方案的作用,以便对其他人更有用。
      【解决方案4】:

      在 Teradata SQL 中,您可以使用以下内容。它将始终拉动最后 3 天。

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

      【讨论】:

      • 这和手头的问题有关系吗?
      【解决方案5】:

      如果是 Oracle 数据库,请尝试

      NBR || ' ' || ACCT_NBR as acct
      

      【讨论】:

      • 虽然此代码示例可能会回答这个问题,但最好在您的回答中包含一些基本解释。就目前而言,这个答案对未来的读者几乎没有价值。
      【解决方案6】:

      虽然你没有提到数据库,但试试

      MySQL

      concat(NBR,' ',ACCT_NBR) as acct
      

      SQL 服务器

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

      【讨论】:

      • “不支持 concat”。什么不支持concat?我们是程序员而不是心灵感应者。
      【解决方案7】:

      您没有提及您使用的是哪种 SQL,但视情况而定,您可能需要先将值转换为字符串。对于 SQLSever...

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-30
        • 2017-03-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多