order by 질문 0 6 3,514

by 손님 [SQL Query] order by [2012.07.10 15:08:33]


아래와 같이 신용등급 코드가 있습니다.
BB-
BBB
BBB
A
A
A+
A+
CCC
A+ > A > BBB > BB- > CCC 순으로 정렬하려고 하는데 어떻게 쿼리를 작성해야 할까요?
감사합니다.
by 마농 [2012.07.10 16:16:48]

ORDER BY RPAD(RTRIM(grd, '+-'), 3, 'Z')
   , NVL(LTRIM(grd, 'ABC'), ',')


by 손님 [2012.07.10 16:17:03]
ORDER BY TRANSLATE(RPAD(GRADE,4,'0'),'+-','/Z')

by 마농 [2012.07.10 16:33:16]
윗 분 답변이 간단하고 좋은데 오류가 있네요.
A+ > A > AA+ > AA > AAA+ > AAA > AAA- > AA- > A- 순서로 나오네요.
AAA+ > AAA > AAA- > AA+ > AA > AA- > A+ > A > A- 로 나오는게 맞는거죠?
좋은 아이디어인것 같아 수정해 봤습니다.
ORDER BY TRANSLATE(RPAD(grd, 4, 'b'),'+-','ac')

by 김정식 [2012.07.10 18:26:36]
두 분다 대단하네요..^^

by 손님 [2012.07.11 10:41:22]
그러네요. A -> AA -> AAA 이순서대로 생각해서 만들다보니..

ORDER BY TRANSLATE(RPAD(GRADE,4,'Y'),'+-','XZ')

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