我正在使用一个包含“Name”,“FirstName”和“Surname”字段的表。
“名称”在几年前使用过,但仍然受到支持。
今天虽然使用了“FirstName”和“Surname”字段。
这是我想在这张桌子上查询的内容。如果FirstName和/或Surname不是Null,那么我希望它们返回行,否则我想要Name。
FirstName和Surname可以与之间的空格连接,在返回的结果中只提供一个字段。或许你有更好的解决方案。
谢谢!
百里
答案 0 :(得分:5)
这可以通过使用COALESCE
SELECT COALESCE(Firstname + ' ' + Surname, Name)
FROM ATable
或使用ISNULL
SELECT ISNULL(Firstname + ' ' + Surname, Name)
FROM ATable
如果姓氏或姓氏可以是NULL
,并且您想要返回其中一个,则可以使用COALESCE
SELECT COALESCE(Firstname + ' ' + Surname, Firstname, Surname, Name)
FROM ATable
返回其参数中的第一个非空表达式。
答案 1 :(得分:2)
SELECT CASE
WHEN [FirstName] IS NULL OR [Surname] IS NULL THEN [Name]
ELSE [FirstName] + ' ' + [Surname]
END AS [Name]
FROM MyTable