ページの先頭行へ戻る
Enterprise Postgres 10 アプリケーション開発ガイド
FUJITSU Software

9.4.2 SUBSTR

機能

文字列の一部を抜き出します。

記述形式

一般規則

注意

  • SUBSTRには、上記の仕様と同等の動作をする関数と、SUBSTRINGと同等の動作をする関数との2つが存在します。上記の仕様と同等の動作にするためには、search_pathの修正が必要です。

  • search_pathはpostgresql.confで設定することを推奨します。この場合、インスタンス単位で有効になります。postgresql.confの設定方法については、“9.2.1 SUBSTRの注意事項”を参照してください。

  • search_pathの設定は、ユーザー単位やデータベース単位でも設定することが可能です。設定例について以下に示します。

    • ユーザー単位の設定例

      SQLコマンドを実行することで設定可能です。ユーザー名は例としてuser1にしています。

      ALTER USER user1 SET search_path = "$user",public,oracle,pg_catalog;
    • データベース単位の設定例

      SQLコマンドを実行することで設定可能です。データベース名は例としてdb1にしています。

      ALTER DATABASE db1 SET search_path = "$user",public,oracle,pg_catalog;

      変更の際、「oracle」は、「pg_catalog」よりも前に指定する必要があります。

  • 変更が未実施の場合、SUBSTRはSUBSTRINGと同等となります。

参照

ALTER USER、ALTER DATABASEの詳細については、“PostgreSQL文書”の“リファレンス” の“SQLコマンド”を参照してください。

参考

SUBSTRINGの一般規則は以下になります。

  • 開始位置が正、0、負に関わらず、文字値式の先頭からが開始位置になります。

  • 文字列長を指定しない場合、文字値式の終わりまでのすべての文字を返却します。

  • 返却する文字式が0以下、または指定した文字列長が1より小さい場合、空文字列を返却します。

参照

SUBSTRINGの詳細については、“PostgreSQL文書”の“SQL言語”の“文字列関数と演算子”を参照してください。

次の例では、「ABCDEFG」の一部の文字列を抜き出しています。

SELECT SUBSTR('ABCDEFG',3,4) "Substring" FROM DUAL;
 
 Substring
-----------
 CDEF
(1 row)

SELECT SUBSTR('ABCDEFG',-5,4) "Substring" FROM DUAL;

 Substring
-----------
 CDEF
(1 row)