SQL에서....데이타를 추출후에...만약에 이름이 똑같은사람은...
한사람만 나두고 나머지 아래 사람은 지워버리고 싶습니다...
어떻게 SQL문을 만들어야 할까요?
select a.*
from kyj a where resident in
(select resident
from (select resident, count(*) cnt from kyj group by resident) where cnt > 1)
이렇게 하면 중복된데이타는 나오기는 나오는데..이중에서 똑같은것은 하나만 나두고 나머지는 지워버리고 싶습니다.
초보의 짧은 생각으로는 쿼리해서 가져온 값을 가지고 코딩을 지우는 방법도
있을 것 같고, DB에서 제공되는 Cursor를 사용해서 저장프로시져를 작성하는
방법도 있을 것 같네요.
간단히 코딩으로 중복되는 자료를 한건만 남기고 지우는 방법을 설명드리죠.
Query1.First;
Query1.Next;
while NOT(Query1.Eof) do
begin
Query1.Delete;
Query1.Post;
Query1.Next;
end;
간단히 한다고 해봤는데, 코딩이 맞는지 모르겠네요. 아뭏든 Query의 결과값의
첫번째 레코드는 Skip하고, 두번째 레코드부터 삭제를 하면 되겠죠.
델초보의 허접 답변이네요...
그럼...
맥스맨 wrote:
> SQL에서....데이타를 추출후에...만약에 이름이 똑같은사람은...
> 한사람만 나두고 나머지 아래 사람은 지워버리고 싶습니다...
> 어떻게 SQL문을 만들어야 할까요?
>
> select a.*
> from kyj a where resident in
> (select resident
> from (select resident, count(*) cnt from kyj group by resident) where cnt > 1)
>
> 이렇게 하면 중복된데이타는 나오기는 나오는데..이중에서 똑같은것은 하나만 나두고 나머지는 지워버리고 싶습니다.