【问题标题】:Combining two fields into a single field with a space between将两个字段组合成一个字段,中间有空格
【发布时间】:2014-05-15 01:07:59
【问题描述】:

我一直在尝试将名字和姓氏组合成一个字段,中间有一个空格,例如 John Doe。

当我执行以下 concat 时,我得到的是 JohnDoe 而不是 John Doe

SELECT     LTRIM(RTRIM(dbo.gpEmployeeList.firstName)) AS [First Name], LTRIM(RTRIM(dbo.gpEmployeeList.LASTNAME)) AS [Last Name], 
                      dbo.gpEmployeeList.SecurityCode AS [Security Code], dbo.gpEmployeeList.PTO AS [Available PTO], { fn CONCAT(LTRIM(RTRIM(dbo.gpEmployeeList.firstName)), 
                      dbo.gpEmployeeList.LASTNAME) } AS DisplayName
FROM         dbo.MonthName INNER JOIN
                      dbo.gpEmployeeList ON dbo.MonthName.monthNumber = dbo.gpEmployeeList.BIRTHMONTH LEFT OUTER JOIN
                      dbo.domainAccounts ON dbo.gpEmployeeList.LASTNAME = dbo.domainAccounts.sn

有什么修复建议吗?我必须进行修剪以消除名称之间的一堆空格。

【问题讨论】:

  • CONCAT 方法中添加一个空格。 concat(field, ' ', field2).
  • 当我添加空间时,我得到 CONCAT Function requires 2 arguments 错误。我希望这也能早点奏效。
  • 不知道为什么,在这里为我工作:sqlfiddle.com/#!6/fc7c51/1
  • 我自己也不知道为什么。这对我来说肯定是个头疼的事。
  • 您不必使用concat() -- + 的工作方式相同。 field + ' ' + field

标签: sql sql-server concatenation


【解决方案1】:

CONCAT 是 SQL Sever 2012 的功能,在以前的版本中不存在。如果您运行 sgeddes 创建的 sqlfiddle(设置为 MS SQL Sever 2012),则查询会运行。但是,如果将其更改为 MS SQL 服务器 2008 并重建架构,则会引发错误。我假设您没有运行 2012,因为您遇到了连接错误。

http://msdn.microsoft.com/en-us/library/hh231515.aspx

将函数括在括号中会使其工作,但我认为没有必要。

SOCALNoob 一针见血。 + 将列和文本很好地结合在一起。我不明白为什么以下方法不起作用。

 LTRIM(RTRIM(dbo.gpEmployeeList.firstName)) + ' ' + dbo.gpEmployeeList.LASTNAME) AS DisplayName

【讨论】:

    【解决方案2】:

    你可以使用任何一个:

    1- SELECT LTRIM(RTRIM(firstName)) AS [First Name], LTRIM(RTRIM(lastName)) AS [Last Name], { fn CONCAT ({ fn CONCAT(firstName, ' ')}, lastName) } AS DisplayName 来自你的表

    2- SELECT LTRIM(RTRIM(firstName)) AS [First Name], LTRIM(RTRIM(lastName)) AS [Last Name], firstName +' ' + lastName AS DisplayName 来自你的表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      • 2012-06-26
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      相关资源
      最近更新 更多