update문 사용에서 union 사용하기 질문입니다. 1 5 926

by 박지만 [SQL Query] [2014.02.17 10:09:33]


나올 듯 하면서도 자꾸 막히네요. 

한 개 조건만 다른 상황에서 update문을  union으로 사용할 수 있을까요.? 

질의 쿼리는 아래와 같습니다.


   update school a
set a.FLAG = 'Y'
   where 1=1
and a.type in ('1','3')
and exists (
  select 'X'
    from student b
    where b.app_id = 1
  and b.code = 'junior'
  and b.source_id = a.id
   )
  
   union
  
   update school  a
set a.FLAG = 'Y'
   where 1=1
and a.type not in ('1','3')
and exists (
  select 'X'
    from student b
    where b.app_id = 1
  and b.code = 'senior'
  and b.source_id = a.id
   ) 

도움 좀 부탁드려요.. T_T)
by 마농 [2014.02.17 11:33:46]
UNION 이 필요 없어 보이는데요.
 AND b.code IN ('junior', 'senior')

by 박지만 [2014.02.17 11:44:13]
아.. 그게  a.type에 따라서 b.code 조건이 다르게 들어가는 부분입니다..

case 문 쓰기도 예매해서여. 

by DarkBee [2014.02.17 11:40:44]
한가지만 바뀌면 된다고 적혀있는데


총 두가지네요.. a.type

by 마농 [2014.02.17 11:48:25]
UPDATE school a
   SET a.flag = 'Y'
 WHERE 1=1
   AND EXISTS (SELECT 1
                 FROM student b
                WHERE b.app_id = 1
                  AND b.source_id = a.id
                  AND b.code = CASE WHEN a.type     IN ('1', '3') THEN 'junior'
                                    WHEN a.type NOT IN ('1', '3') THEN 'senior'
                                END
               )
;

by 박지만 [2014.02.17 15:09:10]
아.. case 문을 저렇게도 사용할 수가 있네요.

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