コンテンツにスキップ

指定した文字列の特定の位置から、指定した文字数分の文字列を抽出します。

  • len 引数のない形式は、文字列 str の位置 pos から始まる部分文字列を返します。
  • len 引数のある形式は、文字列 str の位置 pos から始まる len 文字分の部分文字列を返します。

pos に負の値を指定することもできます。この場合、部分文字列の開始位置は、文字列の先頭ではなく末尾から pos 文字目になります。負の値は、この関数のどの形式でも pos に使用できます。pos が 0 の場合は空文字列を返します。部分文字列を抽出する元の文字列では、先頭の文字の位置を 1 と数えます。

func.substr(<str>, <pos>, <len>)
func.substr('Quadratically', 5, 6)
┌────────────────────────────────────┐
│ func.substr('Quadratically', 5, 6) │
├────────────────────────────────────┤
│ ratica │
└────────────────────────────────────┘
SUBSTR(<str>, <pos>)
SUBSTR(<str>, <pos>, <len>)
引数 説明
<str> 文字を抽出する元の文字列
<pos> 部分文字列を開始する位置(1から始まります)。負の値の場合は末尾から数えます
<len> 抽出する部分文字列の最大長

VARCHAR

SELECT
SUBSTRING('Quadratically', 5),
SUBSTR('Quadratically', 5),
MID('Quadratically', 5);
┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ substring('quadratically' from 5) │ substring('quadratically' from 5) │ mid('quadratically', 5) │
├───────────────────────────────────┼───────────────────────────────────┼─────────────────────────┤
│ ratically │ ratically │ ratically │
└─────────────────────────────────────────────────────────────────────────────────────────────────┘
SELECT
SUBSTRING('Quadratically', 5, 6),
SUBSTR('Quadratically', 5, 6),
MID('Quadratically', 5, 6);
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ substring('quadratically' from 5 for 6) │ substring('quadratically' from 5 for 6) │ mid('quadratically', 5, 6) │
├─────────────────────────────────────────┼─────────────────────────────────────────┼────────────────────────────┤
│ ratica │ ratica │ ratica │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘