您有没有办法使用解码来检查sql中的正值和负值?
例如
select decode(money_return, **<0**, abs(money_return), **>0**,
money_return*10, money_return) from cash_t;
Run Code Online (Sandbox Code Playgroud)
如果逻辑在if else语句中编码,它将是这样的:
if(money_return<0){money_reutrn = abs(money_return);}
else if(money_return>0){money_reutrn = money_return*10;}
else {money_return = money_return;}
end
Run Code Online (Sandbox Code Playgroud)
谢谢.
你需要案例陈述
select CASE
WHEN money_return < 0 THEN abs(money_return)
WHEN money_return > 0 THEN money_return*10
ELSE money_return END money_return from cash_t;
Run Code Online (Sandbox Code Playgroud)
您可以使用带有解码的"签名".对于任何负数,该符号将返回-1,对于0表示0将返回1,对于任何正数将返回1:
select decode(sign(money_return), -1, abs(money_return),
1, money_return*10,
money_return)
from cash_t;
Run Code Online (Sandbox Code Playgroud)