我正在做一些从Oracle到MSSQL的转换,我正在阅读Oracle关于B支持SQL语法和函数的指南。
我注意到有人说有一个非NVL函数(它的MSSQL等效值不是NULL)。
我正在为我的同事编写一个列表,这样我们就可以为语法和受支持的函数提供一站式资源,我是否正确地假设不是NVL是这样工作的:
有3列,名称,位置,loves_marmite Andrew是的
不是NVL(loves_marmite,'Nope')
因此,显示的数据如下:
Andrew | UK | Nope当它只是一个逻辑问题时,我就不明白为什么它会被作为一个Oracle函数列出,而且更重要的是,Oracle拥有是空,而不是空。
很抱歉,在把这份文件转交给我的同事之前,我只是想得到一些澄清。
编辑:,如果可能的话,会有人列出两个平台之间的功能和语法差异吗?
发布于 2014-04-04 09:27:39
检查NVL2(param1, param2, param3)函数。
如果param1是NOT (NULL or EMPTY STRING),则返回param2、param3、返回param3。
你可以写:
NVL2(loves_marmite, 'Nope', something_else)此外,请参阅这个答案以获得与Oracle中的空相关函数的列表。
发布于 2014-04-04 09:11:06
首先,请查看isNull函数。但甲骨文可能正试图告诉你,用一个案例取代NVL的滑稽性;
SELECT CASE WHEN Foo IS NOT NULL THEN bar
ELSE BLA
ENDhttps://stackoverflow.com/questions/22857982
复制相似问题