sách gpt4 ai đã đi

sql - Decode 与 NVL 函数有什么区别?

In lại 作者:行者123 更新时间:2023-12-04 23:43:00 hai mươi bốn 4
mua khóa gpt4 Nike

一段时间以来,我一直想知道 DECODE 和 NVL 函数的内部工作是如何完成的。如果其中的参数数量更多,DECODE 函数是否会产生更多开销?

此外,NVL 函数是否评估给定的值而不是 NULL,即使原始值不是 NULL例如对于 NVL(COL1, func_call())即使 COL1 不为 NULL,也会计算 func_call()。在这种情况下,如果 COL1 很少为 null 并且 func_call() 很耗时,则可能会产生性能问题。

Cảm ơn trước

1 Câu trả lời

NVL 总是评估两个参数,所以即使 COL1 不为空,它也会评估 func_call()

解码确实短路,所以第一个有效条件停止执行。

在参数相似的情况下,两者的性能非常相似。我通常只是根据简单性来选择 - NVL,除非我需要有一个 if-then-else 类型的结构。

----编辑----

在确实使用 NVL 的情况下,如果您发现自己正在执行嵌套 NVL,例如 nvl(col1, nvl(col2, '0')) '0') - 返回第一个非空参数

关于sql - Decode 与 NVL 函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10309282/

hai mươi bốn 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com