SUBSTR関数は文字列式あるいはビット列式に作用します。 結果のデータ型はそれぞれ、前者の場合はVARCHARで、後者の場合はVARCHAR FOR BIT DATAです。 結果の最大長は元の引数の型の最大長です。
SUBSTR({ 文字式 }, 開始位置 [, 列の長さ ] )
引数の開始位置と省略可能な列の長さはどちらも整数式です。 先頭の文字あるいはビットの開始位置は1です。 もし0が与えられた場合、Derbyは1が与えられたものとみなします。
文字式のデータ型はCHAR、VARCHAR、LONG VARCHAR、あるいは(ビット式ではない)文字列に暗黙のうちに変換可能な組み込み型の何れかです。
文字式では開始位置および列の長さというパラメータは文字をさします。ビット式については、開始位置および列の長さというパラメータはビットをさします。
もし開始位置が正であれば、その数は基となる式の先頭から数えた位置を指します。(先頭の文字は1と数えます。)開始位置は負とすることができません。
もし列の長さが指定されなかった場合、SUBSTRは式の開始位置から末尾までの部分列を返します。もし列の長さが指定された場合、SUBSTRは開始位置から始まる列の長さの、VARCHARあるいはVARBITを返します。 もし列の長さに負の数が与えられた場合、SUBSTR関数はエラーを返します。
VALUES SUBSTR('hello', 2)結果は'ello'となります。
VALUES SUBSTR('hello',1,2)結果は'he'となります。