Odpovědět 쿼리 질문입니다.

  • 2012년 2월 22일 수요일 오후 12:49
     
     

    아래 와같이 테이블이 존재하구요.

    C1,C2,C3
    --------
    a,b,c
    x,y,z
    p,q,r
    a,b,c
    a,b,c
    x,y,z

    값이 abc 처음 값이 나오면, 네번째 컬럼에 1 중복된경우엔 0을 C4라는 컬럼에 나오게 만드는 쿼리를 만들고 싶어요

    C1,C2,C3,C4
    --------
    a,b,c,1
    x,y,z,1
    p,q,r,1
    a,b,c,0
    a,b,c,0
    x,y,z,0

모든 응답

  • 2012년 2월 23일 목요일 오후 2:57
    중재자
     
     답변됨

    안녕하십니까? S큐L 님,

    Microsoft TechNet의Forum 사이트를 방문해 주셔서 감사합니다.

    문의 하신 "쿼리 질문입니다”에 대해 답변드리겠습니다.

    -------------------------------------------------------------------------

    CREATE TABLE #T1 (C1 varchar(1),C2 varchar(1),C3 varchar(1),C4 int)
     
    INSERT INTO #T1 (C1,C2,C3)
    VALUES ( 'a','b','c'), ('x','y','z'), ('p','q','r'), ('a','b','c'), ('a','b','c'),
     ('x','y','z') 
     
     -- Here is the trick
     ;WITH CTE  as
    (Select     seq = ROW_NUMBER() OVER (PARTITION BY C1,C2,C3 ORDER BY C1)
                , C1, C2, C3,C4
          from #T1
        
    )
    UPDATE CTE
      SET C4 = 1
     WHERE seq = 1
     
     
    select * from #T1
    DROP TABLE #T1 

    -------------------------------------------------------------------------

    혹시 제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.
    제시해 드린 답변이 도움이 되었기를 바랍니다.

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.


    • 편집됨 Jina LeeModerator 2012년 2월 23일 목요일 오후 2:58
    • 답변으로 표시됨 Qler 2012년 2월 24일 금요일 오전 12:20
    •