如何计算表中两个字段的相差百分比,并且不确定哪一个字段的值大
------解决方案--------------------
with tb(a,b)as(
select 3,7 from dual union all
select 7,3 from dual
)
select case when a>b then (a-b)/b*100
------解决方案--------------------
'%'
else (b-a)/a*100
------解决方案--------------------
'%' end from tb
大概就是这个意思,细节自己去调吧
------解决方案--------------------
如在同一行 用greatest和least取最大最小,然后处理
不在同一行用max和min取最大最小,然后处理
------解决方案--------------------
SQL> select abs(1-2)/greatest(1,2) from dual;
ABS(1-2)/GREATEST(1,2)
----------------------
.5
SQL> select abs(1-3)/greatest(1,3) from dual;
ABS(1-3)/GREATEST(1,3)
----------------------
.666666667
SQL> select abs(a-b)/greatest(a,b) from dual;