0

假设您有一个包含 FirstName、MiddleName、LastName 的 User 表。
就本示例而言,只有 FirstName 是强制性的。

当它们的值不为空时,连接这三个字段并用“,”分隔它们的最快方法是什么,所以:

如果只有 FirstName 不为空,我们应该得到“John”作为结果。
如果只有 FirstName 和 LastName 不为空,我们应该得到“John,Wayne”作为结果。
如果 FirstName、MiddleName 和 LastName 不为空,我们应该得到“John,M,Wayne”作为结果。

先谢谢了。

4

2 回答 2

2

也许是这样的:

FirstName +(CASE WHEN MiddleName IS NULL THEN '' ELSE ','+MiddleName END)
+(CASE WHEN LastName IS NULL THEN '' ELSE ','+LastName END) 
于 2012-04-18T06:28:04.647 回答
0

2种不同的方法

--syntax
select Firstname + isnull(',' +Middlename, '') + coalesce(',' +LastName, '')
from 
--testdata
(select 'John' firstname, 'W' middlename, 'Wayne' lastname
union all select 'John' firstname, null middlename, 'Wayne' lastname
union all select 'John' firstname, 'W' middlename, null lastname) a
于 2012-04-18T07:18:17.293 回答