概要:このチュートリアルでは、SQL SUBSTRING
関数を使用して文字列から部分文字列を抽出する方法を学習します。
SQL SUBSTRING関数の紹介
SUBSTRING
関数は、指定された位置から始まり、指定された長さの部分文字列を抽出します。
SUBSTRING
関数の構文を以下に示します。
SUBSTRING(source_string, position, length);
Code language: SQL (Structured Query Language) (sql)
SUBSTRING
関数は3つの引数を受け取ります
-
source_string
は、部分文字列を抽出する元の文字列です。 -
position
は、部分文字列の開始位置です。文字列の最初の位置は1です。 -
length
は、部分文字列の長さです。length
引数は省略可能です。
ほとんどのリレーショナルデータベースシステムは、同じ機能を持つ SUBSTRING
関数を実装しています。
SQL SUBSTRING関数の例
次の例は、位置1から始まり、長さ3の部分文字列を返します。
SELECT SUBSTRING('SQLTutorial.org',1,3);
Code language: SQL (Structured Query Language) (sql)
substring
-----------
SQL
(1 row)
Code language: SQL (Structured Query Language) (sql)
次のステートメントは、位置4から始まり、長さ8の部分文字列を返します。
SELECT SUBSTRING('SQLTutorial.org',4,8);
Code language: SQL (Structured Query Language) (sql)
substring
-----------
Tutorial
(1 row)
Code language: SQL (Structured Query Language) (sql)
次のステートメントは、POSITION
関数を使用して、文字列内のドット文字(.)の位置を返します。
POSITION
関数の結果は、SUBSTRING
関数に渡され、ドメインの拡張子を取得します。
SELECT
SUBSTRING('SQLTutorial.org',
POSITION('.' IN 'SQLTutorial.org'));
Code language: SQL (Structured Query Language) (sql)
substring
-----------
.org
(1 row)
Code language: SQL (Structured Query Language) (sql)
サンプルデータベースの次の employees
テーブルを参照してください。

次のクエリは、SUBSTRING
関数を使用して、従業員の名の最初の文字(イニシャル)を抽出し、イニシャルで従業員をグループ化します。
SELECT
SUBSTRING(first_name, 1, 1) initial,
COUNT(employee_id)
FROM
employees
GROUP BY initial;
Code language: SQL (Structured Query Language) (sql)

このチュートリアルでは、SQL SUBSTRING関数を使用して文字列から部分文字列を抽出する方法を学習しました。
このチュートリアルは役に立ちましたか?