我一直试图将名字和姓氏合并到一个字段中,例如John Doe之间的空格。
当我做以下连续时,我得到John Doe而不是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
有任何修复建议吗?我必须修剪以消除名称之间的混乱空间。
答案 0 :(得分:0)
你可以使用其中任何一个:
1- SELECT LTRIM(RTRIM(firstName))AS [名字],LTRIM(RTRIM(lastName))AS [姓氏], {fn CONCAT({fn CONCAT(firstName,'')},lastName)} AS DisplayName 来自你的表
OR
2- SELECT LTRIM(RTRIM(firstName))AS [名字],LTRIM(RTRIM(lastName))AS [姓氏], firstName +''+ lastName AS DisplayName 来自你的表
答案 1 :(得分:0)
CONCAT是SQL Sever 2012功能,在以前的版本中不存在。如果运行sgeddes创建的sqlfiddle(设置为MS SQL Sever 2012),则运行查询。但是,如果将其更改为MS SQL sever 2008并重建架构,则会引发错误。我假设你没有运行2012,因为你得到了一个concat错误。
http://msdn.microsoft.com/en-us/library/hh231515.aspx
将功能包装在括号中会使其正常工作,但我认为不需要。
SOCALNoob击中头部的钉子。 +会很好地将列和文本组合在一起。我不明白为什么以下不起作用。
LTRIM(RTRIM(dbo.gpEmployeeList.firstName)) + ' ' + dbo.gpEmployeeList.LASTNAME) AS DisplayName