gpt4 book ai didi

sql - PL SQL条件的正确写法

转载 作者:行者123 更新时间:2023-12-04 04:57:52 25 4
gpt4 key购买 nike

以下是我的表请求的条件。

level of     till 300$       301-500$      501-3400$
credit card
usage in
3 month

0% 0% 0% 0%
1-30% 30% 0% 0%
31-50% 50% 0% 0%
51-60% 50% 15% 0%
61-70% 100% 15% 0%
70%~ 100% 30% 30%

我的任务是使用 PL SQL 在一张表中检索我上面提到的所有信息。我有表请求,其中包含 3 列作为 client_id、level_3m 和 credit_limit 所以输出(例如)应该使用上述信息如下所示:
level_3m     credit_limit($)      new_limit(%)

0 50 0
45 400 0
45 250 50
65 350 15
80 1500 30

到目前为止我做了什么?这是我自己的脚本:
DECLARE
v_level VARCHAR2(100);
v_credit_limit VARCHAR2(100);
v_id VARCHAR2(100);
new_limit VARCHAR2(100);
BEGIN
SELECT level_3m,
credit_limit
INTO v_level, v_credit_limit
FROM request a
WHERE v_id = a.client_id;

--this is for "till 300$" condition
IF v_level = 0
AND v_credit_limit =< 300 THEN
new_limit := 0;
ELSIF v_level >= 1
AND v_level <= 30
AND v_credit_limit =< 300 THEN
new_limit := 30;
ELSIF v_level >= 31
AND v_level <= 50
AND v_credit_limit =< 300 THEN
new_limit := 50;
ELSIF v_level >= 51
AND v_level <= 60
AND v_credit_limit =< 300 THEN
new_limit := 50;
ELSIF v_level >= 61
AND v_level <= 70
AND v_credit_limit =< 300 THEN
new_limit := 100;
ELSIF v_level >= 70
AND v_credit_limit =< 300 THEN
new_limit := 100;
END IF;
END;

/

--the other conditions were written same manner as the above one.

我是 PL/SQL 的新手,所以请告诉我我的情况是否正确?还是有另一种更简单的方法来编写这些条件?

最佳答案

你在做 If 语句是正确的。

另一种选择是使用 案例 .它基本相同,但有时看起来更整洁,尤其是当您写出许多 ELSIF 子句时。

    CASE
WHEN v_level=0 and v_credit_limit=<300 then new_limit:=0
WHEN v_level>=1 and v_level <=30 and v_credit_limit =<300 then new_limit:=30
WHEN v_level>=31 and v_level<=50 and v_credit_limit=<300 then new_limit:=50
WHEN v_level>=51 and v_level<=60 and v_credit_limit=<300 then new_limit:=50
WHEN v_level>=61 and v_level<=70 and v_credit_limit=<300 then new_limit:=100
WHEN v_level>=70 and v_credit_limit=<300 then new_limit:=100
END CASE

在我看来,使用 IF 还是 CASE 并没有那么重要。

关于sql - PL SQL条件的正确写法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16541841/

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