oracle中如何使用%进行计算

How to use % in oracle for calculation

我定义了一个逻辑,我想在其中使用 % 百分比作为计算结果,但在使用时出现错误。

逻辑如下

ELSIF V_ANCHOR_NONANCHOR = 'Anchor'
THEN
v_STD_REVISED_AMT := (V_STANDRD_AMT  - v_OD_Discount) - ((V_STANDRD_AMT  - v_OD_Discount * 10%));

错误是

Error(103,94): PLS-00103: Encountered the symbol "%" when expecting one of the following: ) , * & = - + < / > at in is mod remainder not rem => <an exponent (**)> <> or != or ~= >= <= <> and or like like2 like4 likec as between || member submultiset The symbol "%" was ignored.

请推荐使用方法。

更新

v_STD_REVISED_AMT := (V_STANDRD_AMT - v_OD_Discount) - ((V_STANDRD_AMT - v_OD_Discount * 0.1), (V_STANDRD_AMT - v_OD_Discount));

给出错误为

Error(108,22): PLS-00412: list of values not allowed as argument to this function or procedure

我想你只想乘以 0.110/100 表示 10% 如下:

(V_STANDRD_AMT  - (v_OD_Discount * 0.1))

--更新

整个解决方案应该如下:

v_STD_REVISED_AMT := (V_STANDRD_AMT  - v_OD_Discount) 
                     - CASE WHEN V_ANCHOR_NONANCHOR = 'Anchor' 
                              OR (M2_DATE_COL_VARIABLE < DATE '2019-03-31' 
                                  AND M2_DATE_COL_VARIABLE > DATE '2016-07-13') 
                            THEN (V_STANDRD_AMT  - v_OD_Discount * 10%)  
                            ELSE 0 
                       END;