【oracle 비망록】 UNION ALL 을 사용해 테이블을 결합

5340 단어 오라클SQL
※이 비망록은 초학자의 제가 학습한 내용을 잊지 않기 위해서 써낸 것이 됩니다.

이번 목적



아래의 「현 테이블」, 「색 테이블」로부터, 각 현의 인구에 따라, 컬러 코드를 취득하고 싶다.

<조건>
◇아래 인구에 따라, 필요한 컬러 코드를 취득
・인구 100만명 미만…청색
・인구 100만명 이상 200만명 미만…녹색
・인구 200만명 이상 300만명 미만…황색
・인구 300만명 이상…적색

작성한 코드


    SELECT .ID 
         , .県名 
         , .人口 
         , .カラーコード 
      FROM ,  
     WHERE .人口 < 1000000 
       AND .ID = 1 

    UNION ALL 

    SELECT .ID 
         , .県名 
         , .人口 
         , .カラーコード 
      FROM ,  
     WHERE .人口 <  2000000 
       AND .人口 >= 1000000 
       AND .ID = 2 

    UNION ALL 

    SELECT .ID 
         , .県名 
         , .人口 
         , .カラーコード 
      FROM ,  
     WHERE .人口 <  3000000 
       AND .人口 >= 2000000 
       AND .ID = 3 

    UNION ALL 

    SELECT .ID 
         , .県名 
         , .人口 
         , .カラーコード 
      FROM ,  
     WHERE .人口 >= 3000000 
       AND .ID = 4 

    ORDER BY ID

취득 결과





감상



두 개의 테이블을 사용하여 어떤 데이터를 얻고 싶을 때,
나는 먼저 join을 생각해 버리지만, 이번과 같이 2개의 테이블이 join에서 조인하기가 곤란한 때(2개의 테이블로 공통되는 컬럼이 없을 때)는, UNION ALL를 취급할 수 있도록(듯이) 하고 싶다

좋은 웹페이지 즐겨찾기