긍부
10
2020-02-14 17:00:08
2
57

mssql PIVOT 관련 질문입니다!


안녕하십니까.


공부를 하다 PIVOT에 알게되었고 테스트를 하던 중에 궁금한게 생겨 구글링을 했지만 재가 이해를 잘못한건지 만족스러운 결과값이 안나오네요...


쿼리 

SELECT T.LN_HIDX

     , T.KO

     , T.EN

, T.CH

  FROM (

  SELECT ln_hidx,[ko], [en], [ch] 

    FROM TEST_LANGUAGEDB

   PIVOT(MAX(LN_NAME) FOR LANG_CD IN ([ko],[en],[ch])) AS TE

   ) T

ORDER BY LN_HIDX 


실행 결과로는 



로 나오게 됩니다.


재가 원하는건 LN_HIDX를 기준으로 '2'라고 가정하면

   LN_HIDX    |           KO          |           EN          |    CH

          2                한글_search      영어_search       NULL

          3                    .....                       .....                 NULL


이런식으로 가져오고 싶은게 조언 부탁드립니다...

0
0
  • 답변 2

  • BK
    831
    2020-02-15 12:41:59

    PIVOT하고는 상관 없이 GROUP BY가 필요한거 아닌가요?

    TEST_LANGUAGEDB 구성이 어떤지를 알아야 좀 더 진단을 해보겠지만...

    WITH T AS
    (
      SELECT
        ln_hidx,
        [ko],
        [en],
        [ch]
       FROM TEST_LANGUAGEDB
       PIVOT
       (
         MAX(LN_NAME)
         FOR LANG_CD IN ([ko],[en],[ch])
       ) AS TE
    )
    SELECT
      T.LN_HIDX,
      MAX(T.KO) AS KO,
      MAX(T.EN) AS EN,
      MAX(T.CH) AS CH
    FROM T
    GROUP BY LN_HIDX
    ORDER BY LN_HIDX


    0
  • 긍부
    10
    2020-02-17 11:07:34

    #BK



    BK님 댓글 감사합니다!!

    간단히 GROUP BY로 해결될거였네요... ㅜㅠ

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.