Oracle文档不是NVL

时间:2014-04-04 08:55:05

标签: sql sql-server oracle

我正在做一些从Oracle到MSSQL的转换,而我正在B Supported SQL Syntax and Functions阅读Oracle的指南。

我注意到有一个NOT NVL函数(它的MSSQL等价物是IS NOT NULL)。

我正在为同事编写一个列表,这样我们就可以获得语法和支持函数的一站式资源,我是否认为NOT NVL的工作方式是正确的:

  

有3列,名称,位置,loves_marmite

     

安德鲁|英国|是

NOT NVL(loves_marmite,' Nope')

所以显示的数据是:

Andrew | UK | Nope

我只是不明白为什么当它只是一个逻辑问题时它会被列为Oracle功能,而且更重要的是Oracle有 IS NULL IS NOT NULL

对不起,在我将这份文件传递给我的同事之前,我只是在寻找一些澄清。

编辑:如果有可能,有人会在两个平台之间找到功能和语法差异的完整列表吗?

2 个答案:

答案 0 :(得分:3)

检查NVL2(param1, param2, param3)功能。

如果param1为NOT (NULL or EMPTY STRING),则返回param2,否则返回param3。

你可以写:

NVL2(loves_marmite, 'Nope', something_else)

另外,请参阅this answer以获取Oracle

中与空相关的函数列表

答案 1 :(得分:0)

首先,请参阅isNull功能。但甲骨文可能会试图告诉你用案例取代NVL功能;

SELECT CASE WHEN Foo IS NOT NULL THEN bar
                                 ELSE BLA
             END