PostgreSQL 9.3.2ʸ�� | ||||
---|---|---|---|---|
前のページ | 上に戻る | 第 9章�ؿ��ȱ黻�� | 次のページ |
����Ǥ�PostgreSQL�ǻ��Ѳ�ǽ��SQL���ξ�P�ˤĤ����������ޤ���
ティップ: ���������������P���ȯŸ������ǽ�������ϡ����ɽ����˭�٤ʥץ���������ǥ��ȥ��ɥץ���������Ҥ��뤳�ȤDz�褵��ޤ���
SQL��CASE����¾�Υץ�����ߥ����if/else��ʸ������������Ѿ�P�Ǥ���
CASE WHEN condition THEN result [WHEN ...] [ELSE result] END
CASE��ϼ���ͭ���ʰ��֤Ǥ���Фɤ��Ǥ���Ѳ�ǽ�Ǥ������줾���condition�Ȥ�boolean���η�̤��֤����Ǥ����⤷condition�η�̤����Ǥ���С�CASE�����ͤϡ�condition��³��result�Ȥʤ�ޤ��� �����ơ�CASE���λĤ�Ͻ�������ޤ��� �⤷condition�η�̤����Ǥ���и��³�����Ƥ�WHEN�礬Ʊ���褦�ˤ���Ĵ�٤��ޤ���WHEN��condition��1�Ĥ�Ǥʤ���硢CASE�����ͤ�ELSE���result�ˤʤ�ޤ���ELSE�礬��ά���졢�ɤ�condition��Ǥʤ���硢��̤�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���Υǡ�������ñ��ν��Ϸ��˸ߴ������ʤ���Фʤ�ޤ��ܺ٤�項10.5�Ȥ��Ƥ���������
�ʲ��Τ褦�ˡ��嵭�ΰ���Ū�ʷ����Ȱۤʤ�CASE����"ñ���"������¸�ߤ��ޤ���
CASE expression WHEN value THEN result [WHEN ...] [ELSE result] END
�ǽ��expression�Ϸ����졢�����Ƥ������������Τ����Ĥ���ޤ�WHEN��Τ��줾���value������Ӥ���ޤ���
��������Τ����Ĥ���ʤ���硢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
CASE���ϡ���̤���ꤹ�뤿�����ɬ�פʤɤ���������ɾ�����ޤ����㤨�С��ʲ���0�������顼���ɤ��������ˡ�Ǥ���
SELECT ... WHERE CASE WHEN x <> 0 THEN y/x > 1.5 ELSE false END;
注意: 項35.6�ˤ����������Ȥ��ꡢIMMUTABLE�Ȼ�Ŧ���줿�ؿ��Ȱ����ϡ����줬�¹Ԥ��������ǤϤʤ��䤤��碌���ײ褵�줿������ɾ������ޤ��� ���Τ��Ȥ���̣����Τϡ��䤤��碌�¹Ի�����ɾ������ʤ���ʸ̮�ΰ�����ʬ���䤤��碌�ײ�δ��֤Ǥ�̤����ɾ������³����Ȥ������ȤǤ���
COALESCE
(value [, ...])
COALESCE
�ؿ��ϡ�NULL�Ǥʤ����Ȥκǽ�ΰ������֤��ޤ������Ƥΰ�����NULL�ξ��ˤΤ�NULL���֤���ޤ����ǡ�����ɽ����Ū�Ǽ��Ф��ݡ�NULL�ͤ�ǥե�����ͤ��֤������뤿��ˤ褯���Ѥ���Ƥ��ޤ����ʲ�������ޤ���
SELECT COALESCE(description, short_description, '(none)') ...
�����description��NULL�Ǥʤ���Ф��֤��ޤ��������Ǥʤ����(NULL�ξ��)�ϡ�short_description��NULL�Ǥʤ���Ф�����֤��ޤ��������Ǥ�ʤ�����(none)������ޤ���
CASE��Ʊ�͡�COALESCE
�Ϸ�̤���ꤹ�뤿���ɬ�פʰ����Τߤ�ɾ�����ޤ����Ĥޤꡢ��NULL���������Ĥ���С����α�¦�ˤ��������ɾ������ޤ�����SQLɸ��ؿ���NVL
��IFNULL
������ε�ǽ������¾�Τ����Ĥ��Υǡ����١��������ƥ�ǻ��Ѥ���Ƥ��ޤ���
NULLIF
(value1, value2)
NULLIF
�ؿ��ϡ�value1��value2����������硢NULL�ͤ��֤��ޤ���
����¾�ξ���value1���֤��ޤ���
�����Ȥäơ��嵭��COALESCE
����εձ黻��¹ԤǤ��ޤ�
SELECT NULLIF(value, '(none)') ...
������Ǥϡ�value1��(none)�ʤ��NULL���֤�ޤ��� ����ʤ���value1���֤��ޤ�
GREATEST
(value [, ...])
LEAST
(value [, ...])
GREATEST
��LEAST
�ؿ��ϼ���Ǥ�դο��Υꥹ�Ȥ�������ͤ⤷���ϺǾ��ͤ����ޤ���ɾ����������Ƥμ��ϡ���̤Ȥ���������ǡ����η��ȶ��̤η����Ѵ��Ǥ��ʤ��ƤϤʤ�ޤ���ʾܺ٤�項10.5�Ȥ��Ƥ��������ˡ��ꥹ�Ȥ����NULL�ͤ�̵�뤵��ޤ������Ƥμ���NULL��ɾ�����줿���˸¤äƷ�̤�NULL�ˤʤ�ޤ���
GREATEST
�����LEAST
��SQLɸ��˺ܤäƤ��ޤ������̤�����ĥ�Ǥ���¾�Τ����Ĥ��Υǡ����١����Ǥϡ����Ƥ�NULL�ξ��˸��ꤻ���������줫�ΰ�����NULL�Ǥ������NULL���֤��褦�ˤ��Ƥ����Τ⤢��ޤ���