¾�ΥС�������ʸ�� �� 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.3. �ؿ��ƤӽФ�

PostgreSQL��������̾���դ�ɽ���ˤ��̾���դ��ѥ�᡼����ؿ��˻������뤳�Ȥ���ǽ�Ǥ����ä�̾���դ�ɽ���ϡ�¿���Υѥ�᡼������Ĵؿ��ˤ����ƥѥ�᡼���Ȱ����δ�Ϣ�������Ρ��μ¤ˤ���Τ�ͭ�ѤǤ�������ɽ���Ǥϡ��ؿ�����κݤ�������줿��Τ�Ʊ���¤ӽ�ΰ��������ؿ��ƤӽФ��˵��Ҥ���뤳�Ȥˤʤ�ޤ���̾���դ�ɽ���Ǥϡ������ȴؿ��ѥ�᡼����̾������פ����뤳�Ȥˤʤꡢ�����ϤɤΤ褦���¤ӽ�Ǥ⹽���ޤ���

�ɤ����ɽ���Ǥ⡢�ѥ�᡼�����ؿ�������˥ǥե�����ͤ�Ϳ�����Ƥ���иƤӽФ����˵��Ҥ����ɬ�פϤ���ޤ��󡣤���ϡ�̾���դ�ɽ���Ǥϡ��ѥ�᡼������Ǥ�դ��Ȥ߹�碌���ά���뤳�Ȥ��Ǥ���Τǡ��ü�ʥ������Ǥ�ͭ�ѤǤ�������������ɽ���Υѥ�᡼���ϱ����麸�ؾ�ά���Ƥ������Ȥ����Ǥ��ޤ���

PostgreSQL�Ǥϡ�̾���դ�ɽ���Ȱ���ɽ��������ɽ���⥵�ݡ��Ȥ��Ƥ��ޤ������ξ�硢����ɽ���Υѥ�᡼�����ǽ�˵��Ҥ��졢���θ��̾���դ�ɽ���Υѥ�᡼�������Ҥ���뤳�Ȥˤʤ�ޤ���

������3�Ĥ�ɽ����ˡ��Ȥä��ؿ��������Ǥ���

CREATE FUNCTION concat_lower_or_upper(a text, b text, uppercase boolean DEFAULT false)
RETURNS text
AS
$$
 SELECT CASE
        WHEN $3 THEN UPPER($1 || ' ' || $2)
        ELSE LOWER($1 || ' ' || $2)
        END;
$$
LANGUAGE SQL IMMUTABLE STRICT;

concat_lower_or_upper�ؿ��ϡ�a��b�λ���ɬ�ܤȤʤ�2�ĤΥѥ�᡼��������ޤ����ä��ơ�uppercase�Ȥ����ǥե���Ȥ�false�ȤʤäƤ��륪�ץ���ʥ�ʥѥ�᡼�����Ļ����ޤ���a��b�����Ϥ��줿ʸ���󤬷�礵�졢uppercase�ѥ�᡼���ˤ����ʸ������ʸ�����Ѵ�����ޤ���¾�Τ��δؿ�����ˤĤ��Ƥξܺ٤ϡ������ǤϽ��פǤϤ���ޤ���( �ܺ٤�第35章�򻲾Ȥ��Ʋ�������)

4.3.1. ����ɽ���λ���

����ɽ���ϡ�PostgreSQL�ΰ�����ؿ����Ϥ�����Ū�ʻ��ȤߤǤ������󤲤ޤ���

SELECT concat_lower_or_upper('Hello', 'World', true);
 concat_lower_or_upper 
-----------------------
 HELLO WORLD
(1 row)

���٤Ƥΰ���������̤�˻��ꤷ�ޤ���uppercase��true�Ȼ��ꤵ��Ƥ��ޤ��Τǡ���̤���ʸ���Ǥ����̤���򼨤��ޤ���

SELECT concat_lower_or_upper('Hello', 'World');
 concat_lower_or_upper 
-----------------------
 hello world
(1 row)

�����Ǥ�uppercase�ѥ�᡼������ά����Ƥ��ޤ��Τǡ����Υǥե�����ͤǤ���false�������뤳�ȤȤʤꡢ��̤Ͼ�ʸ���ˤʤ�ޤ�������ɽ���Ǥϰ������ǥե�����ͤ���ĸ¤걦¦���麸�������ǡ��������ά���뤳�Ȥ��Ǥ��ޤ���

4.3.2. ̾���դ�ɽ���λ���

̾���դ�ɽ���Ǥϡ��ư�����̾����:=����Ѥ�������ɽ����ʬ���ƻ��ꤵ��ޤ������󤲤ޤ���

SELECT concat_lower_or_upper(a := 'Hello', b := 'World');
 concat_lower_or_upper 
-----------------------
 hello world
(1 row)

�����֤��ˤʤ�ޤ�����uppercase��������ά����Ƥ��ޤ��Τǡ�����Ū��false�����ꤵ��ޤ���̾���դ�ɽ���λ��Ѥ������Σ��ĤȤ��ơ�������Ǥ�դν���ǻ���Ǥ�����������ޤ����ʲ�����򼨤��ޤ���

SELECT concat_lower_or_upper(a := 'Hello', b := 'World', uppercase := true);
 concat_lower_or_upper 
-----------------------
 HELLO WORLD
(1 row)

SELECT concat_lower_or_upper(a := 'Hello', uppercase := true, b := 'World');
 concat_lower_or_upper 
-----------------------
 HELLO WORLD
(1 row)

4.3.3. ����ɽ��������

����ɽ����̾���դ�ɽ���Ȱ���ɽ�����Ȥ߹�碌����ΤǤ������������˽Ҥ٤��褦�ˡ�̾���դ����줿�����ϰ��֤Ť����줿�ѥ�᡼�������˵��Ҥ��뤳�ȤϤǤ��ޤ������󤲤ޤ���

SELECT concat_lower_or_upper('Hello', 'World', uppercase := true);
 concat_lower_or_upper 
-----------------------
 HELLO WORLD
(1 row)

�嵭���䤤��碌�Ǥϡ�a��b�����֤ǻ��ꤵ�졢uppercase��̾���ǻ��ꤵ��Ƥ��ޤ���������Ǥ�ʸ�񲽤���Ū�ʳ��ۤȤ�ɰ�̣������ޤ��󡣥ǥե�����ͤ�������Ƥ�줿¿���Υѥ�᡼������ġ���ä�ʣ���ʴؿ��Ǥϡ�̾���դ��⤷���Ϻ���ɽ���ˤ�국���̤��礭�����餹���Ȥ��Ǥ������ġ����顼��ʶ������ǽ�����ޤ��뤳�Ȥ��Ǥ��ޤ���

注意: ̾���դ��Ⱥ��߸ƤӽФ�ɽ���Ͻ���ؿ��θƤӽФ��Ǥϸ��߻��ѤǤ��ޤ���ʤ�������ؿ���������ɥ��ؿ��Ȥ��ƻȤ�����ˤ�ư��ޤ��ˡ�