日期:2014-05-17  浏览次数:21547 次

oracle如何实现三个数比较,取最大值
有这样一张表M ,里面有三个字段分别为 a b c,这三个字段有可能其中一个为空值,或者其中两个为空值,再或者全部都为空值 三种情况;该采用什么方法来判断三个值取最大的那一个?
说明:这三个字段都是char类型的;

------解决方案--------------------
SELECT deminid,ammountid,ammountvalue FROM test1

DEMINID AMMOUNTID AMMOUNTVALUE
1 1 1 2
2 1 3 4
3 1 5 6


SELECT deminid,ammountid,ammountvalue,
(CASE WHEN (CASE WHEN deminid-ammountid >0 THEN deminid ELSE ammountid END) - ammountvalue >0 THEN CASE WHEN deminid-ammountid >0 THEN deminid ELSE ammountid END
ELSE ammountvalue END)MAXVALUES
FROM test1
DEMINID AMMOUNTID AMMOUNTVALUE MAXVALUES
1 1 1 2 2
2 1 3 4 4
3 1 5 6 6