¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

4.12. ��P

������Ǥ� PostgreSQL �ǻ��Ѳ�ǽ�� SQL ���ξ�P�ˤĤ����������ޤ���

Tip: ���������������P���ȯŸ������ǽ�������ϡ����ɽ����˭�٤ʥץ���������ǥ��ȥ��ɥץ���������򵭽Ҥ��뤳�ȤDz�褵��ޤ���

CASE

CASE WHEN condition THEN result
     [WHEN ...]
     [ELSE result]
END

SQL �� CASE ����¾�θ���� if/else ��ʸ����������̾�ξ�P�Ǥ���CASE ��ϼ���ͭ���ʰ��֤Ǥ���Фɤ��Ǥ���Ѳ�ǽ�Ǥ�������Ȥ� �������η�̤��֤����Ǥ����⤷��̤����Ǥ���� CASE �����ͤ� result (���) �Ȥʤ�ޤ����⤷��̤����Ǥ����Ʊ���褦�ˤ��Ƹ��³�� WHEN �礬Ĵ�٤��ޤ���WHEN �� ��� �ΤҤȤĤ⿿�Ǥʤ���硢CASE �����ͤ� ELSE ��� result (���)�ˤʤ�ޤ���ELSE �礬̵���ɤξ��Ȥ���פ��ʤ���硢��̤� NULL �Ǥ���

�ҤȤĤ���򼨤��ޤ���

=> SELECT * FROM test;
 a
---
 1
 2
 3

=> SELECT a,
          CASE WHEN a=1 THEN 'one'
               WHEN a=2 THEN 'two'
               ELSE 'other'
          END
    FROM test;
 a | case
---+-------
 1 | one
 2 | two
 3 | other

���٤Ƥ� result (���)���Υǡ�������ñ��ν��Ϸ��˶�������ʤ���Фʤ�ޤ��󡣾ܺ٤� Section 5.6 �򻲾Ȥ���������

CASE expression
    WHEN value THEN result
    [WHEN ...]
    [ELSE result]
END

����"��ά��" CASE ���Ͼ�˵��Ҥ������̷�����������̤��ѷ��Ǥ�����P�Ϸ׻����졢��������Τ����Ĥ���ޤ� WHEN ��Τ��٤Ƥ��ͤ���Ӥ���ޤ�����������Τ����Ĥ���ʤ���硢ELSE ��� result (���)(�⤷���� NULL) ���֤���ޤ�������� C ����� switch ��ʸ�˻��Ƥ��ޤ���

�����ϴ�ά����ȤäƼ��Τ褦�˽񤯤��Ȥ��Ǥ��ޤ��� CASE ��ʸ��

=> SELECT a,
          CASE a WHEN 1 THEN 'one'
                 WHEN 2 THEN 'two'
                 ELSE 'other'
          END
    FROM test;
 a | case
---+-------
 1 | one
 2 | two
 3 | other

COALESCE

COALESCE(value[, ...])

COALESCE �ؿ��� NULL �Ǥʤ����Ȥκǽ�ΰ������֤��ޤ����ǡ�����ɽ������Ū�Ǽ��Ф��ݡ�NULL �ͤ�����˥ǥե�����ͤ�Ȥ������Ȥ��������ʤ��Ȥ�����ޤ���������Ǥ���

SELECT COALESCE(description, short_description, '(none)') ...

NULLIF

NULLIF(value1, value2)

NULLIF �ؿ��� value1 �� value2 ����������硢�ޤ����ξ��˸¤äƤΤ�NULL ���֤��ޤ�������¾�ξ��� value1 ���֤��ޤ��������Ȥäƾ嵭�� COALESCE ����εձ黻��¹Ԥ����뤳�Ȥ��Ǥ��ޤ���

SELECT NULLIF(value, '(none)') ...

Tip: COALESCE �� NULLIF �ؿ��� CASE ����ñ�ʤ��άɽ���Ǥ��������μ��Ͻ���������ʳ��Ǽºݤˤ� CASE �����Ѵ�����ơ�����³�������Ǥ� CASE ���갷�äƤ���褦�˸��ʤ���ޤ����������äơ� COALESCE �ޤ��� NULLIF �� ���äƻ��Ѥ���ȡ�CASE �˴�Ϣ�������顼��å�������ɽ������뤳�Ȥ�����ޤ���