체인의정석

Mysql - null값이 섞인 같은 행하나로 합치기 본문

개발/database

Mysql - null값이 섞인 같은 행하나로 합치기

체인의정석 2020. 8. 28. 00:46
728x90
반응형

SQL 문에서 다음과 같이 tech_name을 2개의 테이블로 가져오는 경우에 IFNULL을 써서 NULL일 경우 2번째 값이 나오도록 만든다. 

    SELECT /* ?.brokerage */
    br.brokerage_idx,
    br.brokerage_req_start,
    br.brokerage_req_end,
    br.brokerage_status,
    IFNULL(t.tech_name,d.tech_name) as tech_name
    FROM brokerage br
    LEFT OUTER JOIN tech_info t ON t.tech_idx = br.tech_idx 
    LEFT OUTER JOIN demand d ON d.demand_idx = br.demand_idx 
    where br.reg_id = "test";

CASE WHEN을 써서도 이를 구현할 수 있다.

만약 NULL이 아닌 다른 조건의 경우도 고려하려면 아래와 같이 case when절을 사용하여 하면 된다.

   SELECT /* ?.brokerage */
    br.brokerage_idx,
    br.brokerage_req_start,
    br.brokerage_req_end,
    br.brokerage_status,
    (CASE WHEN t.tech_name is null then d.tech_name
    	else t.tech_name END)tech_name
    FROM brokerage br
    LEFT OUTER JOIN tech_info t ON t.tech_idx = br.tech_idx 
    LEFT OUTER JOIN demand d ON d.demand_idx = br.demand_idx 
    where br.reg_id = "test";

다음처럼 tech_name이라는 한 행안에 결과 값이 로드 된다.

 

 

728x90
반응형
Comments