バージョンごとのドキュメント一覧

9.10. 列挙型サポート関数 #

<title>Enum Support Functions</title>

For enum types (described in <xref linkend="datatype-enum"/>), there are several functions that allow cleaner programming without hard-coding particular values of an enum type. These are listed in <xref linkend="functions-enum-table"/>. The examples assume an enum type created as: 列挙型(8.7で解説)に対し、特に列挙型の値をハードコーディングせず簡潔なプログラミングを可能にするいくつかの関数があります。 それらの関数は表 9.35で一覧されています。 例は以下のようにして列挙型が作成されていることを想定しています。

CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple');

表9.35 列挙型サポート関数

<title>Enum Support Functions</title>

Function 関数

Description 説明

Example(s)

enum_first ( anyenum ) → anyenum

Returns the first value of the input enum type. 入力列挙型の最初の値を返します。

enum_first(null::rainbow)red

enum_last ( anyenum ) → anyenum

Returns the last value of the input enum type. 入力列挙型の最後の値を返します。

enum_last(null::rainbow)purple

enum_range ( anyenum ) → anyarray

Returns all values of the input enum type in an ordered array. 入力列挙型の全ての値を順序付き配列として返します。

enum_range(null::rainbow){red,orange,yellow,​green,blue,purple}

enum_range ( anyenum, anyenum ) → anyarray

Returns the range between the two given enum values, as an ordered array. The values must be from the same enum type. If the first parameter is null, the result will start with the first value of the enum type. If the second parameter is null, the result will end with the last value of the enum type. 与えられた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}


Notice that except for the two-argument form of <function>enum_range</function>, these functions disregard the specific value passed to them; they care only about its declared data type. Either null or a specific value of the type can be passed, with the same result. It is more common to apply these functions to a table column or function argument than to a hardwired type name as used in the examples. enum_rangeの2引数の形式を除き、これらの関数は、渡された特定の値を無視することに注意してください。関数は宣言されたデータ型のみ配慮します。 その型のNULLまたは特定の値を渡すことができ、同一の結果が得られます。 例で使われているような直書きした型名に対してではなく、テーブル列もしくは関数引数にこれらの関数を適用することがより一般的です。