다중 update가 쿼리로 가능하나요? 0 4 3,704

by sql_master [SQL Query] [2010.02.25 09:38:19]



update table
set  name = '1'
,name ='2'
where exists ( select 1  from table1
  where std_date='20090331')  (--> 사실 여기에 나온 num에 해당하는것만 update해야하거든요)

이렇게 하면   조회된이 여러건인데.. 다건을 name='1', name='2' 업데이트가 가능한가요?

그리고 exists하면  왜 해당 날짜의 num만 이아니라 테이블 전체의 num가 나오는것일까요 ?
쿼리가 잘못된건가요?

부탁드립니다.
by 마농 [2010.02.25 09:43:50]
논리적으로 앞뒤가 안 맞는 설명과 쿼리네요.
1. 우선 exist는 존재여부만을 체크합니다. 쿼리 결과가 존재하므로 무조건 참이죠.
조건절이 참이므로 전체 자료가 업데이트 됩니다.
2. 같은 name컬럼을 1 과 2로 갱신할수는 없죠 행이 다르다면 모를까?
서로 다른 조건에 의해 다른 값으로 갱신해야 하ㅏㄴ다면 추가설명이 필요합니다.
3. 여기 나온 num만 update해야 한다? num이 어디 있나요?
전체적으로 횡설수설 질문이네요.

by sql_master [2010.02.25 09:52:28]
아. 그런가요? ㅜ.ㅜ update는 처음이라. 상당히 어렵네요...

그럼 더 공부해보고 모르는 거 물어보겠습니다. update참고할만한 자료를 찾다가 못찾아서 올렸습니다.

아 그리고 set num = '1' 에서 num을 유동적으로 넣을 수는 없죠?
즉, table 의 id 컬럼이 1일때 num은 '2' , id 컬럼이 2일때는 numb'3' 이렇게 유동적으로 가능하나요?

설명이 부족해서 죄송합니다. ㅠ.ㅠ

by 마농 [2010.02.25 09:55:34]
가능합니다. decode나 case문을 이용하시면 됩니다.
Update 문을 몰라서 질문하시는 건은 당연한 것입니다. 부끄러운겅은 아니죠.
다만 update문을 모르는것과 요구사항을 설명하는것과는 별개의 문제죠.
요구사항만 잘 설명하시면 됩니다.

by sql_master [2010.02.25 10:00:18]
감사합니다... ^^ 갈길이 머네요 ㅜ.ㅜ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입