gpt4 book ai didi

sql - 解码 Oracle SQL

转载 作者:行者123 更新时间:2023-12-02 07:27:19 24 4
gpt4 key购买 nike

我最近遇到了一些解码查询。

我发现这个解码功能有些困惑。以下是查询:

SELECT promo_id,
DECODE(NVL(promo_cost,0),promo_cost, promo_cost * 0.25, 100) "Discount"
FROM promotions;

SELECT promo_id,
DECODE(promo_cost,10000, DECODE(promo_category, 'G1', promo_cost *.25, NULL), NULL) "Catcost";

我浏览了互联网,研究了一些文章,但似乎 DECODE 因查询而异。

谁能给我解释一下这两个查询在做什么。

非常感谢。

注意:这不是我的作业。我是一名专业音乐家,最近刚学过 C 和 SQL,因为它很有趣。

最佳答案

DECODE 函数的语法是 DECODE( expression , search , result [, search , result]... [, default] )

在您的第一个查询中:

解码(NVL(promo_cost,0),promo_cost, promo_cost * 0.25, 100)

以下是解释:

expression = NVL(promo_cost,0)
search = promo_cost
result = promo_cost * 0.25
default = 100

也就是说,

IF NVL(promo_cost,0) = promo_cost
THEN
output = promo_cost * 0.25
ELSE
output = 100
END

同样可以使用 CASE 来解释:

CASE 
WHEN NVL(promo_cost,0) = promo_cost
THEN
promo_cost * 0.25
ELSE
100
END

关于sql - 解码 Oracle SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26560772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com