우선 순위별 값선택 0 2 1,600

by 마늘장아찌 [2016.11.01 17:42:34]


WITH t AS
(SELECT 'A' CODE, NULL rate FROM dual UNION ALL
SELECT 'F', 22 FROM dual UNION ALL
SELECT 'P', 11 FROM dual)
SELECT *
FROM t

 

위와 같은 sample의 경우

우선순위 A > F > P

즉, code 값 A의 rate가 존재하면 A의 rate를

F rate가 존재하면 F의 rate를

그마저도 없으면 P의 rate를 사용하고저 합니다.

Grouping과 Order를 어떤식으로 해야 하나의 값으로 떨어질수 있을까요...

 

 

 

 

by 랑에1 [2016.11.01 17:52:15]
WITH t AS
(SELECT 'A' CODE, null rate FROM dual UNION ALL
SELECT 'F', 22 FROM dual UNION ALL
SELECT 'P', 11 FROM dual)

SELECT rate
FROM 
(
  SELECT t.*, ROW_NUMBER() OVER(ORDER BY code) cnt
  FROM t
  WHERE rate IS NOT NULL 
)
WHERE cnt = 1

 


by jkson [2016.11.01 17:58:14]
SELECT RATE
  FROM
    (           
    SELECT RATE
      FROM t
     WHERE RATE IS NOT NULL
     ORDER BY CODE
    )
 WHERE ROWNUM = 1

SELECT MAX(RATE ) KEEP (DENSE_RANK FIRST ORDER BY CODE) RATE
  FROM t
 WHERE RATE IS NOT NULL

 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입