ywork2020.com

Title

文字列から指定した部分だけを取り出す

目次 (INDEX)

SUBSTRING とは

ここで説明する SUBSTRING とは次の語句からなる SQL の関数です。
substring
読み: サブストリング
意味: 部分文字列、文字部分列

目次に戻る

SUBSTRING 関数の概要

この関数は、文字列や文字列型のカラムの値から指定した部分の文字だけを取り出します。 文字を 「 取り出す 」 というよりは 「 切り出す 」 という表現の方が理解しやすいかもしれません。

この関数の引数には切り出し文字の開始位置と切り出し文字数を指定します。

同じ機能を持つ関数に SUBSTR 関数があります。
Oracle には SUBSTR 関数しかありませんので、そちらを使用してください。

目次に戻る

サンプルデータベースとテーブルの構造

データ抽出用のサンプルテーブルが必要でしたので事前に作成しています。

現在、データベースにはサンプルとして以下に示す構造の test テーブルを作成しており、 そのテーブルに 6人のペーパーテストの成績を登録した状態になっています。

サンプルコード: テーブルの作成

サンプルテーブルを以下のクエリで作成しました。

CREATE TABLE test(
	id int(11),
	氏名 varchar(20),
	国語 int(11),
	算数 int(11),
	理科 int(11),
	社会 int(11),
	英語 int(11)
);
id氏名国語算数理科社会英語
データデータデータデータデータデータデータ
データデータデータデータデータデータデータ

目次に戻る

サンプルコードと実行結果

ここからは実際に稼働しているデータベースに接続してクエリを実行していきます。 下記に配置された各ボタンをクリックすると、ボタンに書かれているサンプルクエリを実行して結果を表示します。

サンプルコード: SQL (SELECT 文の基本的な使い方)

SELECT * FROM テーブル名;

これはテーブルデータを抽出するための基本構文です。
指定したテーブルのデータを全件、全フィールドで抽出します。 この単純なクエリはデータ量が少ない場合や開発段階では利用することが多いと思いますが、実際の運用では使いません。

実行:

サンプルコード: SQL (SUBSTRING 関数を使用した場合)

SELECT SUBSTRING(文字列値, 取り出し開始位置, 取り出し文字数) FROM テーブル名;
実行:

説明:
氏名のカラムの値を 5文字目から 2文字分取り出して表示させています。

サンプルコード: SQL (SUBSTR 関数の使い方)

SELECT SUBSTR(文字列値, 取り出し開始位置, 取り出し文字数) FROM テーブル名;
実行:

OracleはSUBSTR関数しか使えませんので、こちらを使用してください。

説明:
SUBSTRING 関数と同じ効果です。

目次に戻る

SQL の仕様上の注意点

※ SQL の予約句はアルファベットの大文字と小文字を区別しませんが、 任意で作成したデータベースやテーブル、カラムの名前などは区別されるので注意が必要です。

目次に戻る