DB2 SQL中的IsNull函数?

时间:2008-09-15 17:47:43

标签: sql null db2

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

想象一下,我们的一些产品是内部产品,因此它们没有名称:

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

可能会返回:

1 Socks 
2 Shoes 
3 Internal 
4 Pants

7 个答案:

答案 0 :(得分:35)

为了它的价值,COALESCE类似但

IFNULL(expr1, default)

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

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

因此

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

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

答案 1 :(得分:3)

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

即:


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

答案 2 :(得分:2)

Select Product.ID, VALUE(product.Name, "Internal") AS ProductName from Product

答案 3 :(得分:2)

在DB2中有一个函数NVL(字段,值,如果为null)。

示例:

SELECT ID,NVL(NAME,“内部)AS NAME,NVL(PRICE,0)AS产品价格与UR;

答案 4 :(得分:0)

COALESCE功能相同ISNULL功能 注意。您必须使用COALESCE函数,其中您检查的列的数据类型为null。

答案 5 :(得分:0)

我认为COALESCE功能部分类似于isnull,但请尝试一下。

为什么不通过应用程序去寻找null处理函数,它是更好的选择。

答案 6 :(得分:0)

希望这可以帮助其他人

  SELECT 
.... FROM XXX XX
WHERE
....
AND(
       param1 IS NULL
       OR XX.param1 = param1
       )