宣言
SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
SUBSTRING(str FROM pos)
SUBSTRING(str FROM pos FOR len)
説明
str の長さが len で、開始位置が pos の部分文字列を返します。引数に NULL を含む場合は、NULL を返します。この関数は SUBSTR() のエイリアスです。
lenが指定されない場合、返される部分文字列はposからstrの終端までの範囲となります。posの値が負の数の場合、strの末尾から先頭に向かって逆順に開始位置を決定します。lenが 0 以下、またはposで指定された開始位置が無効な場合、空の文字列を返します。
例
obclient> SELECT
SUBSTRING('abcdefg', 3),
SUBSTRING('abcdefg', 3, 2),
SUBSTRING('abcdefg', -3),
SUBSTRING('abcdefg', 3, -2),
SUBSTRING('abcdefg' from -4 for 2)
\G
*************************** 1. row ***************************
SUBSTRING('abcdefg', 3): cdefg
SUBSTRING('abcdefg', 3, 2): cd
SUBSTRING('abcdefg', -3): efg
SUBSTRING('abcdefg', 3, -2):
SUBSTRING('abcdefg' from -4 for 2): de
1 row in set