복붙노트

[SQL] PostgreSQL의에서 NULL 값을 처리하기 위해 COALESCE을 사용하여

SQL

PostgreSQL의에서 NULL 값을 처리하기 위해 COALESCE을 사용하여

나는 다음과 같은 쿼리를 가지고

SELECT  DISTINCT 
     pt.incentive_marketing, 
     pt.incentive_channel, 
     pt.incentive_advertising 
FROM test.pricing pt 
WHERE pt.contract_id = 90000 
group by 1,2,3 
order by pt.incentive_marketing;

첨부 된 이미지와 같이 상기 질의는 O / P를 반환

그러나 나는 유착을 사용하여 0 모든 널 (null) 값을 대체 할 날이가 SELECT 질의 위 달성 될 수있는 방법을 알려주세요

지금은 더 아래로 병합을 사용하여 쿼리를 수정

SELECT  
     COALESCE( pt.incentive_marketing, '0' ), 
     COALESCE(pt.incentive_channel,'0'), 
     COALESCE( pt.incentive_advertising,'0') 
FROM test.pricing pt 
WHERE pt.contract_id = 90000 
group by 1,2,3 

결과는 이미지 2에서 부착된다.

나는 아직도 빈 값을 하나 개의 행을받을

해결법

  1. ==============================

    1.당신은 짧고 효율적인 솔루션을 NULLIF와 함께 유착을 사용할 수 있습니다 :

    당신은 짧고 효율적인 솔루션을 NULLIF와 함께 유착을 사용할 수 있습니다 :

    COALESCE( NULLIF(yourField,'') , '0' )
    

    yourField (이 경우 '') 두 번째 값에 해당되는 경우 NULLIF 함수는 COALESCE 함수는 완전히 모든 경우에 작동하고, 널 (null)을 반환합니다 :

                     QUERY                     |                RESULT 
    ---------------------------------------------------------------------------------
    SELECT COALESCE(NULLIF(null  ,''),'0')     |                 '0'
    SELECT COALESCE(NULLIF(''    ,''),'0')     |                 '0'
    SELECT COALESCE(NULLIF('foo' ,''),'0')     |                 'foo'
    
  2. ==============================

    2.0을 사용하고 있고 지정 빈 문자열 ''와 널 (null)이 정의되지 않은 경우는 데이터 문제가 생겼어요. 그냥 열을 업데이트하고 스키마를 수정.

    0을 사용하고 있고 지정 빈 문자열 ''와 널 (null)이 정의되지 않은 경우는 데이터 문제가 생겼어요. 그냥 열을 업데이트하고 스키마를 수정.

    UPDATE pt.incentive_channel
    SET   pt.incentive_marketing = NULL
    WHERE pt.incentive_marketing = '';
    
    UPDATE pt.incentive_channel
    SET   pt.incentive_advertising = NULL
    WHERE pt.incentive_marketing = '';
    
    UPDATE pt.incentive_channel
    SET   pt.incentive_channel = NULL
    WHERE pt.incentive_marketing = '';
    

    이 가입하고 선택 실질적으로 쉽게 전진 할 것입니다.

  3. from https://stackoverflow.com/questions/27479180/using-coalesce-to-handle-null-values-in-postgresql by cc-by-sa and MIT license