您可以参考以下查询来获得相同的内容 -
select FirstName +' '+ MiddleName +' ' + Lastname as Name from TableName.
select CONCAT(FirstName , ' ' , MiddleName , ' ' , Lastname) as Name from
TableName
select Isnull(FirstName,' ') +' '+ Isnull(MiddleName,' ')+' '+ Isnull(Lastname,' ')
from TableName.
注意:如果所有列都为null或者为空,则所有列都具有某个值,则返回Point 1查询,然后它将为所有列返回null,表示Name将返回" NULL"值。
要避免点编号1,您可以使用点编号2或点编号3 -
我们可以使用IsNull
或CONCAT
关键字来获得相同的内容。
如果任何人包含空值,那么' ' (空格)将添加下一个值。
答案 0 :(得分:4)
RTRIM
和LTRIM
的组合将在每一端去除任何空白。CONCAT
将名称段附加在一起COALESCE
用空字符串替换NULL
经过格式化以提高可读性
SELECT
RTRIM(LTRIM(
CONCAT(
COALESCE(FirstName + ' ', '')
, COALESCE(MiddleName + ' ', '')
, COALESCE(Lastname, '')
)
)) AS Name
FROM TableName
答案 1 :(得分:1)
Just Do A替换#3上具有单个空格的双空格,它应该按预期工作
SELECT
LTRIM(RTRIM(REPLACE(
ISNULL(FirstName,' ')
+' '+
ISNULL(MiddleName,' ')
+' '+
ISNULL(Lastname,' '),
' ',' ')))
FROM TableName
答案 2 :(得分:1)
SELECT rtrim(concat(FirstName + ' ', MiddleName + ' ', LastName + ' '))
答案 3 :(得分:1)
这对我有用。
如果您有 SqlServer 2014(或更低版本)。
Select
REPLACE(
REPLACE(ISNULL(FirstName,''),' ','') +' '+
REPLACE(ISNULL(MiddleName,''),' ','') +' '+
REPLACE(ISNULL(LastName,''),' ','')
,' ',' ') AS [FullName]
from [Table];
GO
使用此代码的好处是:
答案 4 :(得分:0)
好吧,我猜你在寻找:
select Isnull(FirstName,'') +' '+ Isnull(MiddleName,'')+' '+ Isnull(Lastname,'') from TableName
也就是说,当任何名称为null
时,它将替换为空字符串''
。
答案 5 :(得分:0)
替换功能在连接First, Middle 和Last Name时会删除两个字符空白。
SQL2016及以上兼容代码
SELECT REPLACE(CONCAT(FirstName+' ',MiddleName+' ',LastName+' '),' ',' ')
AS EmployeeName
FROM dbo.Employee
SQL SERVER 2017兼容代码:
SELECT REPLACE(CONCAT_WS(' ',FirstName,MiddleName,LastName),' ',' ')AS
EmployeeName FROM dbo.Employee
答案 6 :(得分:0)
select CONCAT(FirstName , " ", MiddleName, " ", LastName )as Name from
TableName
使用""
解决了我的问题
答案 7 :(得分:0)
这处理...
NULL
或空白,REPLACE
),并且SELECT RTRIM(ISNULL(NULLIF(LTRIM(RTRIM(T.FirstName)), '') + ' ', '') +
ISNULL(NULLIF(LTRIM(RTRIM(T.MiddleName)), '') + ' ', '') +
ISNULL(NULLIF(LTRIM(RTRIM(T.LastName)), ''), '')) AS name
FROM TableName T
NULLIF(LTRIM(RTRIM(T.FirstName)), '') + ' '
的计算结果为 NULL
,因为与 NULL
连接的任何内容都是 NULL
。否则,它返回一个带有尾随空格的修剪过的名称。
ISNULL
用指定的替换值替换 NULL
。如果名称为 NULL
或空白,则第一个参数仅为 NULL
,然后替换为空的 VARCHAR,这意味着在与其余名称字段连接时不会引入额外的空格。RTRIM
或空白,但不是名字或中间名,则外部 NULL
会删除最后一个可能的空格。