본문 바로가기

업무/ORACLE

복수칼럼값중에 Max칼럼값 찾기

CREATE TABLE YY_백승희_max(id number, a NUMBER, b NUMBER, c NUMBER, d NUMBER, e NUMBER, f NUMBER, g NUMBER, h NUMBER);
INSERT INTO YY_백승희_max VALUES(2345, 2, 3, 5, 1, 9, 6, 4, 8);

SELECT id, MAX(a)
FROM
(
SELECT id, a FROM ttmp_max
UNION ALL
SELECT id, b FROM ttmp_max
UNION ALL
SELECT id, c FROM ttmp_max
UNION ALL
SELECT id, d FROM ttmp_max
UNION ALL
SELECT id, e FROM ttmp_max
UNION ALL
SELECT id, f FROM ttmp_max
UNION ALL
SELECT id, g FROM ttmp_max
UNION ALL
SELECT id, h FROM ttmp_max
)
GROUP BY id ;


SELECT b.id, DECODE(SIGN(b.maa-b.mbb), 1, b.maa, b.mbb) max_num
FROM(
   SELECT id, DECODE(SIGN(a.ma-a.mb), 1, a.ma, a.mb) maa,
          DECODE(SIGN(a.mc-a.md), 1, a.mc, a.md) mbb
   FROM (

       SELECT id,
              DECODE(SIGN(a-b), 1, a, b) ma,
              DECODE(SIGN(c-d), 1, c, d) mb,
              DECODE(SIGN(e-f), 1, e, f) mc,
              DECODE(SIGN(g-h), 1, g, h) md
       FROM YY_백승희_max
   ) a
) b;