[PostgreSQL] 조건식

DataBase 2010. 4. 9. 13:18


1. CASE .. WHEN

조건식을 부여할 수 있음.

// gender 필드값이 'm'이면 '남성', 'f'이면 '여성', 그 외에는 '뭐냐?'로 가져옴
SELECT name,
    CASE WHEN gender='m' THEN '남성' 
             WHEN gender='f'   THEN '여성'
             ELSE '뭐냐?'
    END
    FROM member;

// 나이가 10보다 작으면 '어린이', 10보다 크고 20보다 작으면 '청소년', 20보다 크면 '어른'
SELECT name,
    CASE WHEN age<10 THEN '어린이'
             WHEN age<20 THEN '청소년'
             ELSE '어른'
    END
    FROM member;



2. COALESCE(value1 [, ...])

NULL인지 판별

// name값이 있으면 name을, NULL이면 'NOBODY'를 가져옴
SELECT COALESCE(name, 'NOBODY') FROM member;




3. NUlLIF(value1, value2)

value1, value2가 같으면 NULL을, 다르면 인수1을 반환.

// name이 'NOBODY'이면 NULL을, 아니라면 name값을 반환
SELECT NULLIF(name, 'NOBODY') from member;



참고: http://www.postgresql.org/docs/8.4/static/functions-conditional.html
Posted by bloodguy
,