目次

Search

  1. はじめに
  2. 関数リファレンス
  3. 定数
  4. 演算子
  5. 日付
  6. 関数
  7. システム変数
  8. データ型リファレンス

関数リファレンス

関数リファレンス

SUBSTR

SUBSTR

文字列の一部を返します。SUBSTRは、空白を含むすべての文字を文字列の先頭から数えます。

構文

SUBSTR(
string
,
start
[,
length
] )
引数
必須/
オプション
説明
string
必須
文字列でなければなりません。検索したい文字列を渡します。有効な式を必要に応じて入力できます。数値を渡すと、関数はそれを文字列に変換します。
start
必須
整数でなければなりません。文字列内でカウントを開始する位置を示します。有効な式を必要に応じて入力できます。開始位置が正の数である場合、SUBSTRは文字列の先頭からその数だけ数えた位置を開始位置とします。開始位置が負の数である場合、SUBSTRは文字列の最後から数えた位置を開始位置とします。開始位置がゼロの場合、SUBSTRは文字列の最初の文字から検索を開始します。
length
オプション
0より大きい整数でなければなりません。SUBSTRが返す文字の数を指定します。有効な式を必要に応じて入力できます。length引数を省略すると、SUBSTRは開始位置から文字列の終わりまで、すべての文字を返します。負の整数またはゼロを渡すと、関数は空の文字列を返します。小数を渡すと、関数はそれを最も近い整数値に丸めます。

戻り値

文字列。
負またはゼロのlength値を渡した場合は、空の文字列です。
関数にNULL値を渡した場合はNULLです。

以下の式は、PHONEカラム内の各行に対して、市外局番を返します。
SUBSTR( PHONE, 0, 3 )
PHONE
RETURN VALUE
809-555-0269
809
357-687-6708
357
NULL
NULL
SUBSTR( PHONE, 1, 3 )
PHONE
RETURN VALUE
809-555-3915
809
357-687-6708
357
NULL
NULL
以下の式は、PHONEカラム内の各行に対して、市外局番を除いた電話番号を返します。
SUBSTR( PHONE, 5, 8 )
PHONE
RETURN VALUE
808-555-0269
555-0269
809-555-3915
555-3915
357-687-6708
687-6708
NULL
NULL
負の開始値を渡すことにより、PHONEカラム内の各行に対して、電話番号を返すこともできます。式は、
length
引数の結果を返す際には、元の文字列を左から順に読みます。
SUBSTR( PHONE, -8, 3 )
PHONE
RETURN VALUE
808-555-0269
555
809-555-3915
555
357-687-6708
687
NULL
NULL
start
引数、または
length
引数でINSTRをネストして特定の文字列を検索し、その位置を返すことができます。
次の式は、文字列を最後の文字から順に評価します。文字列内の最後(一番右側)のスペースを見つけて、それより前にある文字をすべて返します。
SUBSTR( CUST_NAME,1,INSTR( CUST_NAME,' ' ,-1,1 ) - 1 )
CUST_NAME
RETURN VALUE
PATRICIA JONES
PATRICIA
MARY ELLEN SHAH
MARY ELLEN
次の式は、文字列から文字#を削除します。
SUBSTR( CUST_ID, 1, INSTR(CUST_ID, '#')-1 ) || SUBSTR( CUST_ID, INSTR(CUST_ID, '#')+1 )
length
引数が文字列より長い場合、SUBSTRは開始位置から文字列の終わりまで、すべての文字を返します。次の例を検討します。
SUBSTR('abcd', 2, 8)
戻り値は‘bcd’です。この結果を、以下の例と比較します。
SUBSTR('abcd', -2, 8)
戻り値は‘cd’です。