PostgreSQL 列挙型から範囲を指定して列挙値を取得する
- 作成日 2022.12.23
- 更新日 2022.12.27
- PostgreSQL
- PostgreSQL
PostgreSQLで、列挙型から範囲を指定して列挙値を取得する手順を記述してます。「enum_range」に開始する列挙値と終了する列挙値を指定することで可能です。実行結果はpgadmin上で確認してます。
環境
- OS CentOS Stream release 9
- PostgreSQL 15.1
- pgadmin4 6.16
範囲を指定して列挙値を取得
範囲を指定して列挙値を取得するには、「enum_range」を使用します。
enum_range(開始列挙値:列挙型,終了列挙値:列挙型);
実際に、列挙型「enumtest」を作成して実行してみます。
CREATE TYPE enumtest AS ENUM (
'aaa',
'bbb',
'ccc',
'ddd',
'eee'
);
取得してみます。
SELECT enum_range('bbb'::enumtest,'ddd'::enumtest);
実行結果
存在しない値を指定するとエラーとなります。
SELECT enum_range('bbb'::enumtest,'fff'::enumtest);
ERROR: 列挙型enumtestの不正な入力構文: "fff"
LINE 1: SELECT enum_range('bbb'::enumtest,'fff'::enumtest);
^
SQL 状態: 22P02
文字: 35
実行結果
開始位置と終了位置を逆にすると空の値が返ります。
SELECT enum_range('ddd'::enumtest,'bbb'::enumtest);
実行結果
nullを指定
取得する値をの開始位置か終了位置に「null」を指定すると、最初か最後まで取得されます。
SELECT
enum_range(null::enumtest,'ddd'::enumtest),
enum_range('bbb'::enumtest,null::enumtest);
実行結果
「null」同士を指定すると全て取得されます。
SELECT
enum_range(null::enumtest),
enum_range(null::enumtest,null::enumtest);
実行結果
-
前の記事
Ubuntu cronの実行結果を確認する 2022.12.23
-
次の記事
PyCharm ブレークポイントを表示するショートカットキー 2022.12.23
コメントを書く