Oracle与SQL Server的IsNull()函数等效吗?


Answers:


131

coalesceOracle和SQL Server都支持该功能,nvl并且与和基本上具有相同的功能isnull。(有一些重要的区别,coalesce可以接受任意数量的参数,并返回第一个非null的参数。for的返回类型isnull与第一个参数的类型相匹配coalesce,至少对于SQL Server而言,该返回类型不适用。)


9
+1:COALESCE是ANSI,由Postgres,MySQL支持。
OMG小马

17
的+1 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"
SherlockSpreadsheets

108

代替ISNULL()使用NVL()

T-SQL:

SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable

PL / SQL:

SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable

2
明确回答问题。
Gary Huckabone '16


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.