Q&A

  • 같은 값을 어떻게 지우나요
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)



이렇게 하면 중복된데이타는 나오기는 나오는데..이중에서 똑같은것은 하나만 나두고 나머지는 지워버리고 싶습니다.

1  COMMENTS
  • Profile
    조덕진 2001.02.01 19:47
    안녕하세요. 델초보 조덕진입니다.



    초보의 짧은 생각으로는 쿼리해서 가져온 값을 가지고 코딩을 지우는 방법도

    있을 것 같고, 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)

    >

    > 이렇게 하면 중복된데이타는 나오기는 나오는데..이중에서 똑같은것은 하나만 나두고 나머지는 지워버리고 싶습니다.