by 김대영 [SQL Query] [2017.07.29 18:45:13]
매개변수 숫자 4개를 받아서 1,2,3,4 순위별로 값을 가지고 오려면 함수 구현을 어떻게 하면 될까요?
아무리 고민해도 답이 안 나오네요...
EX)
구분자 1,2,3,4 순위에 따른 값 리턴.
SELECT F_함수(1,3,22,1, '1' ) AS 결과1
,F_함수(1,3,22,1, '2' ) AS 결과2
,F_함수(1,3,22,1, '3' ) AS 결과3
,F_함수(1,3,22,1, '4' ) AS 결과4
FROM DUAL
결과1 결과2 결과3 결과4
=====================================
1 1 3 22
CREATE OR REPLACE FUNCTION f_test (n1 NUMBER, n2 NUMBER, n3 NUMBER, n4 NUMBER, n_seq NUMBER) RETURN NUMBER IS n_rtn NUMBER; BEGIN SELECT n INTO n_rtn FROM (SELECT n , ROW_NUMBER() OVER(ORDER BY n) rn FROM (SELECT n1 n FROM dual UNION ALL SELECT n2 FROM dual UNION ALL SELECT n3 FROM dual UNION ALL SELECT n4 FROM dual ) ) WHERE rn = n_seq ; RETURN n_rtn; END; /