如果数据库值为空,如何在连接时避免空格?

问题描述 投票:0回答:1

我正在连接三个数据库值,名字,中间名,姓氏。这里是查询-

Select ISNULL(t.FirstName,'')+' '+ISNULL(t.MiddleName,'')+' '+ ISNULL(t.LastName,'') as [UserName],Email from table1 t

我正在获取一些中间名的空值。这就是为什么我在连接后获得更多空间的原因。

Firstlast LastName-在一个位置获得两个空格

我想要中间名为空,那么结果中将只出现一个空格。如果不为空,则名,中间名和姓之间将只有一个空格。我尝试了一些方法来避免这种情况,但是没有任何效果。

sql-server ssms
1个回答
0
投票

您可以使用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

示例here

© www.soinside.com 2019 - 2024. All rights reserved.