PostgreSQL 9.6.5文書 | |||
---|---|---|---|
前のページ | 上に戻る | 第 9章関数と演算子 | 次のページ |
列挙型(項8.7で解説)に対し、特に列挙型の値をハードコーディングせず簡潔なプログラミングを可能にするいくつかの関数があります。 それらの関数は表9-32で一覧されています。 例は以下のようにして列挙型が作成されていることを想定しています。
CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple');
表 9-32. 列挙型サポート関数
関数 | 説明 | 例 | 例の結果 |
---|---|---|---|
enum_first(anyenum) | 入力列挙型の最初の値を返す | enum_first(null::rainbow) | red |
enum_last(anyenum) | 入力列挙型の最後の値を返す | enum_last(null::rainbow) | purple |
enum_range(anyenum) | 入力列挙型の全ての値を順序配列として返す | enum_range(null::rainbow) | {red,orange,yellow,green,blue,purple} |
enum_range(anyenum, anyenum) | 与えられた2つの列挙型値の範囲を、順序配列として返す。 値は同一の列挙型に拠らなければならない。 1番目のパラメータがNULLの場合、結果は列挙型の最初の値から始まる。 2番目のパラメータがNULLの場合、結果は列挙型の最後の値で終わる。 | enum_range('orange'::rainbow, 'green'::rainbow) | {orange,yellow,green} |
enum_range(NULL, 'green'::rainbow) | {red,orange,yellow,green} | ||
enum_range('orange'::rainbow, NULL) | {orange,yellow,green,blue,purple} |
enum_range
の2引数の形式を除き、これらの関数は、渡された特定の値を無視することに注意してください。関数は宣言されたデータ型のみ配慮します。
その型のNULLまたは特定の値を渡すことができ、同一の結果が得られます。
例で示したような直書きした型名に対してではなく、テーブル列もしくは関数引数にこれらの関数を適用することがより一般的です。