SQL SUBSTRING:文字列から部分文字列を抽出する

概要:このチュートリアルでは、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 テーブルを参照してください。

employees_table

次のクエリは、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 example

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

このチュートリアルは役に立ちましたか?