我正在连接三个数据库值Firstname,middlename,lastname.Here是查询-
Select ISNULL(t.FirstName,'')+' '+ISNULL(t.MiddleName,'')+' '+ ISNULL(t.LastName,'') as [UserName],Email from table1 t
我得到了一些中间名的空值。这就是为什么我获得额外的空间后,级联。
Firstname LastName --用两个空格代替一个
如果中间名为null,那么result.If中只会出现一个空格,而不是null,那么在名字、中间名和姓氏之间有一个空格。我尝试过一些方法来避免这种情况,但没有任何效果。
发布于 2019-09-24 23:47:19
将空间放在ISNULL
函数中:
Select ISNULL(t.FirstName + ' ', '')
+ ISNULL(t.MiddleName + ' ', '')
+ ISNULL(t.LastName,'') as [UserName]
发布于 2019-09-25 00:07:35
您可以使用replace()
函数将双空格替换为单个空格。
Select replace(concat(coalesce(t.FirstName,''), ' '
, coalesce(t.MiddleName,' ')
, coalesce(t.LastName,''), ' ', ' ')) as [UserName]
, Email
from table1 t
发布于 2019-09-24 23:34:19
您可以使用case when
子句
SELECT ISNULL(t.FirstName,'') +
CASE WHEN t.MiddleName IS NOT NULL THEN
' ' + t.MiddleName + ' '
ELSE
' '
END +
ISNULL(t.LastName,'') as [UserName],
Email
FROM table1 t
示例这里
https://stackoverflow.com/questions/58093013
复制