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;
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;
SELECT COALESCE(name, 'NOBODY') FROM member;
3. NUlLIF(value1, value2)
value1, value2가 같으면 NULL을, 다르면 인수1을 반환.
// name이 'NOBODY'이면 NULL을, 아니라면 name값을 반환
SELECT NULLIF(name, 'NOBODY') from member;
SELECT NULLIF(name, 'NOBODY') from member;
참고: http://www.postgresql.org/docs/8.4/static/functions-conditional.html
'DataBase' 카테고리의 다른 글
[SQLite] 테이블 리스트 보기 (show tables) (2) | 2010.11.16 |
---|---|
[MySQL] 사용자 DB 생성 (0) | 2010.11.12 |
[PostgreSQL] CrossTab Query (tablefunc) (0) | 2010.04.02 |
[PostgreSQL] Date/Time Functions and Operators (0) | 2010.03.29 |
[PostgreSQL] pgcrypto 설치 (0) | 2010.03.19 |