update 쿼리 질문입니다 ㅠㅠ 0 2 267

by 최정권 [SQL Query] [2017.03.28 10:45:47]


안녕하세요.

업데이트 쿼리를 작성하려고 하는데 쿼리가 약해서 질문 드립니다 ㅠㅠ

북마크 컬럼은 main_yn 이고 순서는 order_no 라는 컬럼으로 사용 하고 있습니다.

글로 설명하자면

menu_id       main_yn      order_no

메뉴1               N                1

메뉴2               N                2

메뉴3               N                3

대충 간략하게 적었습니다. 여기서 메뉴3에 북마크를 누르면 Y가 되면서 최상단으로 올라가고 order_no가 1로 되어야합니다.

menu_id       main_yn      order_no

메뉴3               Y                 1

메뉴2               N                2

메뉴1               N                3

고수님들 도움 부탁드립니다 ㅠ_ㅠ

by 랑에1 [2017.03.28 13:44:23]
WITH T(menu_id, main_yn, order_no) AS (
SELECT '메뉴1', 'N', 1 FROM dual UNION ALL
SELECT '메뉴2', 'N', 2 FROM dual UNION ALL 
SELECT '메뉴3', 'N', 3 FROM dual 
)


SELECT menu_id, main_yn, ROW_NUMBER() OVER(ORDER BY order_no) order_no
FROM 
(
SELECT menu_id
     , CASE WHEN :input = menu_id THEN 'Y' ELSE main_yn END main_yn
     , CASE WHEN :input = menu_id THEN 0 ELSE order_no END order_no
FROM T
)

이런 식으로 해서 나온 결과로 업데이트 해주면 될 것 같긴한데요..

 


by 최정권 [2017.03.28 15:07:42]

오오오 감사합니다! ㅠㅠ

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