Hi, I'm Ask INFA!
What would you like to know?
ASK INFAPreview
Please to access Ask INFA.

目次

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’です。