20

是否有与 DB2 的 isnull 函数等效的性能?

想象一下我们的一些产品是内部的,所以它们没有名字:

Select product.id, isnull(product.name, "Internal) 
From product

可能返回:

1 Socks 
2 Shoes 
3 Internal 
4 Pants
4

8 回答 8

38

就其价值而言,COALESCE 是相似的,但

IFNULL(expr1, default)

是您在 DB2 中寻找的完全匹配。

COALESCE 允许多个参数,返回第一个 NON NULL 表达式,而 IFNULL 只允许表达式和默认值。

因此

SELECT product.ID, IFNULL(product.Name, "Internal") AS ProductName
FROM Product

为您提供您正在寻找的内容以及以前的答案,只是为了完整性而添加。

于 2009-07-14T00:44:40.540 回答
5

在 DB2 中有一个函数 NVL(field, value if null)。

例子:

SELECT ID, NVL(NAME, "Internal) AS NAME, NVL(PRICE,0) AS PRICE FROM PRODUCT WITH UR;

于 2017-03-31T09:02:36.533 回答
3

我对 DB2 不熟悉,但是您尝试过 COALESCE 吗?

IE:


SELECT Product.ID, COALESCE(product.Name, "Internal") AS ProductName
FROM Product
于 2008-09-15T17:52:25.240 回答
3
Select Product.ID, VALUE(product.Name, "Internal") AS ProductName from Product
于 2014-05-26T14:32:01.363 回答
0

I think COALESCE function partially similar to the isnull, but try it.

Why don't you go for null handling functions through application programs, it is better alternative.

于 2008-11-02T08:45:48.133 回答
0

COALESCE function same ISNULL function Note. you must use COALESCE function with same data type of column that you check is null.

于 2008-10-02T16:28:33.297 回答
0

希望这可以帮助其他人

  SELECT 
.... FROM XXX XX
WHERE
....
AND(
       param1 IS NULL
       OR XX.param1 = param1
       )
于 2017-09-28T08:41:04.490 回答
0

如果您需要使用 if/else,另一种选择是:

NVL2 (string_to_be_tested, string_if_not_null, string_if_null);

IE:

SELECT product.ID, NVL2(product.Name, "Internal", "External") AS ProductName
FROM Product;
于 2021-09-15T08:06:02.427 回答