DB2 SQL中的IsNull函数?

Dav*_*ave 16 sql db2 null

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

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

Select product.id, isnull(product.name, "Internal) 
From product
Run Code Online (Sandbox Code Playgroud)

可能会回归:

1 Socks 
2 Shoes 
3 Internal 
4 Pants
Run Code Online (Sandbox Code Playgroud)

Mad*_*urf 36

值得一提的是,COALESCE也是如此

IFNULL(expr1, default)
Run Code Online (Sandbox Code Playgroud)

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

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

从而

SELECT product.ID, IFNULL(product.Name, "Internal") AS ProductName
FROM Product
Run Code Online (Sandbox Code Playgroud)

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

  • 这在DB2 9.7 FP9a for Windows中不起作用. (3认同)
  • +1 用于为 IsNull 语句提供 *exact* 匹配。我也投票赞成接受的答案,但我正在使用你的答案。谢谢! (2认同)

Md.*_*man 5

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

例子:

SELECT ID, NVL(NAME, "Internal) AS NAME, NVL(PRICE,0) AS PRICE FROM UR 的产品;


Chr*_*fer 3

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

IE:


SELECT Product.ID, COALESCE(product.Name, "Internal") AS ProductName
FROM Product
Run Code Online (Sandbox Code Playgroud)