You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 12.1.3 Virtual Trader模块多条件CASE语句编写咨询

符合Virtual Trader模块语法的多条件CASE语句方案

以下语句中{D2001}为交易量对应的模块单元格引用,你可以替换为实际使用的单元格参数。

1. 全额累进费率计算(交易量达到某一档后全额适用对应费率)

直接计算总费用的写法:

CASE
    WHEN to_number({D2001}) > 2000000000 THEN to_number({D2001}) * 0.017
    WHEN to_number({D2001}) > 1500000000 THEN to_number({D2001}) * 0.019
    WHEN to_number({D2001}) > 1000000000 THEN to_number({D2001}) * 0.022
    ELSE to_number({D2001}) * 0.024
END

仅返回对应费率值的写法:

CASE
    WHEN to_number({D2001}) > 2000000000 THEN 0.017
    WHEN to_number({D2001}) > 1500000000 THEN 0.019
    WHEN to_number({D2001}) > 1000000000 THEN 0.022
    ELSE 0.024
END

2. 超额累进费率计算(每一级距的交易量单独适用对应费率,累加计算总费用)

CASE
    WHEN to_number({D2001}) > 2000000000 THEN
        1000000000*0.024 + 500000000*0.022 + 500000000*0.019 + (to_number({D2001})-2000000000)*0.017
    WHEN to_number({D2001}) > 1500000000 THEN
        1000000000*0.024 + 500000000*0.022 + (to_number({D2001})-1500000000)*0.019
    WHEN to_number({D2001}) > 1000000000 THEN
        1000000000*0.024 + (to_number({D2001})-1000000000)*0.022
    ELSE
        to_number({D2001}) * 0.024
END

语法适配说明

  • 完全对齐你提供的模块语法规范,所有数值转换统一使用to_number()函数处理,避免单元格返回文本类型导致计算报错
  • CASE判断顺序遵循“从高到低”的区间匹配逻辑,避免低区间优先判断导致高区间规则失效
  • 所有常量未使用千分符,符合Oracle语法数值书写要求

内容的提问来源于stack exchange,提问作者Stanley Suzikya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:06:08