目次へ

解答例 - 実習課題1 - 13.3.ストアドプロシージャの利用

実習課題 1

PostgreSQL の SQL 関数を用いて、販売管理データベースのテーブル customer の列 address の値が、"Osaka city", "Takatsuki city" の場合は "Osaka Pref."、"Uji city", "Kyoto city" の場合は "Kyoto Pref."、"Nishinomiya city ", "Kobe city" の場合は "Hyogo Pref." と表示する関数を定義しなさい。また、定義した関数を利用して、各 Pref. ごとの人数を求める SQL 文を記述しなさい。

解答例

CREATE FUNCTION get_pref(CHAR(20))
RETURNS CHAR(20)
AS
'
  SELECT
    CASE
      WHEN $1 IN (''Osaka city'', ''Takatsuki city'')  THEN ''Osaka Pref.''
      WHEN $1 IN (''Kyoto city'', ''Uji city'')        THEN ''Kyoto Pref.''
      WHEN $1 IN (''Kobe city'', ''Nishinomiya city'') THEN ''Hyogo Pref.''
      ELSE ''Unknown Pref.''
    END;
'
LANGUAGE 'sql' ;

SELECT get_pref(c.address) AS 府県名, count(*)  FROM customer c GROUP BY 1;

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp