본문 바로가기
WEB/SQL

PostGresSQL 의 NVL

by iiaii 2023. 4. 6.
반응형

PostgreSQL에는 nvl 함수가 없습니다.

Oracle과 같은 데이터베이스에서는 nvl 함수를 사용하여 NULL 값일 때 대체 값을 지정할 수 있지만, PostgreSQL에서는 COALESCE 함수를 사용하여 동일한 작업을 수행할 수 있습니다.

예를 들어, **column1**이 NULL일 때 column2 값을 대체하려면 다음과 같이 COALESCE 함수를 사용할 수 있습니다:

SELECT COALESCE(column1, column2) FROM table_name;

위의 쿼리는 **column1**이 NULL이 아니면 column1 값을 반환하고, NULL이면 column2 값을 반환합니다.

하지만 **column1**이 NULL이 아니라 빈값일 경우 column1 을 반환 하며

NULLIF()함수를 사용하여 빈 문자열('')을 NULL 값으로 변환하고, 이후 **COALESCE()**함수를 사용하여 NULL 값을 다른 값으로 대체할 수 있습니다.

다음과 같이 **NULLIF()**와 COALESCE() 함수를 조합해서 사용할 수 있습니다SELECT COALESCE(NULLIF(age, ''), 'N/A') AS age_str FROM my_table;

SELECT COALESCE(NULLIF(age, ''), 'N/A') AS age_str FROM my_table;

위의 쿼리에서 NULLIF(age, '')age 컬럼이 빈 문자열('')인 경우 NULL 값을 반환합니다. 따라서, COALESCE(NULLIF(age, ''), 'N/A')age 컬럼이 빈 문자열('')이거나 NULL 값인 경우 'N/A' 값을 반환합니다.

반응형