是否有与DB2的isnull函数等效的性能?
想象一下,我们的一些产品是内部产品,因此它们没有名称:
Select product.id, isnull(product.name, "Internal)
From product
可能会返回:
1 Socks
2 Shoes
3 Internal
4 Pants
答案 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
)