1

进行了相当多的搜索,发现了许多有关如何配置计算列的示例,但对此一无所获。

我有 2 列 - 姓氏和名字。在某些情况下,这些列中的一个或另一个是NULL

我的计算列语法是

((CONVERT([varchar](max),[LastName],(0))+',  ')+CONVERT([varchar](max),[FirstName],(0))

如果两列都有数据,那效果很好。
但是,当其中一个或另一个是NULL计算列时,将填充NULL.

4

1 回答 1

1

将字符串与null将导致连接,请参阅此处null的备注部分以获取更多详细信息

您应该酌情处理空值

CREATE TABLE People 
(
  Firstname VARCHAR(50), 
  Lastname VARCHAR(50) NOT NULL, 
  Fullname AS CAST(CASE WHEN Firstname IS NOT NULL 
                        THEN Lastname + ', ' + Firstname 
                        ELSE Lastname END AS VARCHAR(105))
)

演示

可以说,它可以是一个没有名字和姓氏的全名,也许这里null是有道理的

编辑:如果其中一个FirstnameLastname可以为空,那么你会想要做这样的事情

CASE WHEN Firstname IS NULL OR Lastname IS NULL THEN COALESCE(Firstname, Lastname)
     ELSE Lastname + ', ' + Firstname END

演示

于 2013-08-07T20:38:44.937 回答