ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • union을 이용한 조인
    프로그램/db 2013. 7. 21. 14:41
    원하는 값대로 정렬해서 join 하려면? SELECT 0 as difficulty UNION SELECT 1 UNION SELECT 2 이런식으로 가상 값을 만들어줘서 그 값들은 union 시켜서 하나의 테이블을 만들다 difficulty 이렇게 하나만 들어가 있는 경우는 유니온을 시키면 뒤에 값들도 같은 컬럼을 쓰기 때문이다. 이렇게 가상 테이블은 만들어서 left join을 해버리면 값이 없는 것은 null 처리가 된다. 예제
    SELECT j_gek,
           j_ju,
           g_gek,
           g_ju
      FROM
           (SELECT 0 as difficulty
               UNION
           SELECT 1
               UNION
           SELECT 2
           ) tab
       LEFT OUTER JOIN
           (SELECT bank_difficulty,
                  sum
                  (
                      CASE
                          WHEN bank_week < 8
                              AND bank_kind = 2
                          THEN 1
                          ELSE 0
                      END
                  ) as j_gek,
                  sum
                  (
                      CASE
                          WHEN bank_week < 8
                              AND bank_kind = 3
                          THEN 1
                          ELSE 0
                      END
                  ) as j_ju,
                  sum
                  (
                      CASE
                          WHEN bank_week > 8
                              AND bank_kind = 2
                          THEN 1
                          ELSE 0
                      END
                  ) as g_gek,
                  sum
                  (
                      CASE
                          WHEN bank_week > 8
                              AND bank_kind = 3
                          THEN 1
                          ELSE 0
                      END
                  ) as g_ju
             FROM exam_bank_prof
            WHERE bank_code ='가족관계'
            GROUP BY bank_difficulty
           ) tab2
           ON difficulty = bank_difficulty
    

    '프로그램 > db' 카테고리의 다른 글

    가상테이블만들어 서브쿼리 날리기  (0) 2013.07.21
    MY-SQL - isnull  (0) 2013.07.21
    MS-SQL - union all 예제  (0) 2013.07.21
    int(7) 이란?  (0) 2013.07.21
    MS-SQL - for xml path 쿼리 한줄로  (0) 2013.07.21

    댓글

Designed by Tistory.