假设我有一个查询:
SELECT FirstName, LastName, Sex, Age FROM Human
如果出于某种原因,表中的值为空,我们可以:
coalesce(FirstName, 'Unknown')
对于具有更多列的较大查询,不是单独合并每个列,有没有一种方法可以合并每个单独的列,但不重复coalesce操作量?
像这样的东西:
SELECT coalesce(FirstName, LastName, Sex, Age, 'Unknown') FROM Human
(我知道这是错误的并且不会起作用,这是我试图说明我的意图的示例的一部分)。
理想情况下,上述内容将依次检查每一列并用“未知”替换任何空值。有没有一种简单的方法可以做到这一点,而不是这样:
SELECT coalesce(FirstName,'Unknown'), coalesce(LastName,'Unknown'), coalesce(Sex, 'Unspecified'), coalesce(Age,'0') FROM Human
另外,回到这个例子:
SELECT coalesce(FirstName, LastName, Sex, Age, 'Unknown') FROM Human
coalesce除了 n 列之外,有没有一种方法可以像上面那样应用拱形?例如仅适用于FirstName,LastName和Sex, 不适用于其余部分。