Answers:
coalesceOracle和SQL Server都支持该功能,nvl并且与和基本上具有相同的功能isnull。(有一些重要的区别,coalesce可以接受任意数量的参数,并返回第一个非null的参数。for的返回类型isnull与第一个参数的类型相匹配coalesce,至少对于SQL Server而言,该返回类型不适用。)
COALESCE,这有一个重要的好处NVL:进行快捷方式评估,而NVL始终评估两个参数。COALESCE(1,my_expensive_function)与比较NVL(1,my_expensive_function)。
COALESE()功能很棒,您可以在MSDOC> COALESCE上阅读有关此功能的信息-该语法在Oracle上也适用。如果您的数据包含空字符串而不是NULL,则可能需要以下内容:COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField"。
代替ISNULL()使用NVL()。
T-SQL:
SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable
PL / SQL:
SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable
NVL2如果要从中返回其他值,也可以使用以下方法field_to_check:
NVL2( field_to_check, value_if_NOT_null, value_if_null )
您可以使用条件if x is not null then...。这不是功能。还有一个NVL()函数,是一个很好的用法示例:NVL函数ref。
COALESCE是ANSI,由Postgres,MySQL支持。