본문 바로가기
Database/MS-Sql Lecture

중복제거 쿼리

by 현이빈이 2010. 8. 25.
반응형

테이블 자체에 중복 데이타가 있어선 안될 경우가 있다.
하지만 현실은.. 생기기도 한다.
확실한 방법은 유니크 키로 설정을 하면 그럴일이 없지만.. 키를 생성하지 못할 경우가 있다.

그렇다면 중복제거 쿼리를 만들어서 프로그램 로딩시 돌려주면 좋을듯하다.

본 쿼리는 같은 주문번호 데이타가 있을경우 해당 주문번호중 ID 값이 Max 인걸 제외하고 나머지를 지우는 쿼리이다.

update tb_table set regist_flag='N' where
ID in
(
select id from tb_table tbl2
where order_id in(
select order_id from tb_table a where a.ID in
(  
select ID from tb_table aaa  WHERE id < (SELECT MAX(ID)
FROM tb_table bbb  WHERE bbb.order_id = aaa.order_id and aaa.regist_flag='Y' and bbb.regist_flag='Y')
)) and ID in

select ID from tb_table aaa  WHERE id < (SELECT MAX(ID)
FROM tb_table bbb  WHERE bbb.order_id = aaa.order_id and aaa.regist_flag='Y' and bbb.regist_flag='Y')
))

  

반응형