SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

【SQL Server】SUBSTRING関数の使い方を徹底解説!文字列から部分文字列を抽出する方法

本記事では、SQL ServerのSUBSTRING関数を使って、指定した文字列から部分文字列(サブストリング)を抽出する方法について、初心者の方にもわかりやすく解説します。

SUBSTRING関数とは

SUBSTRING関数は、入力された文字列の中の任意の位置から、指定した長さの部分文字列を取り出すための関数です。氏名や商品コードなど、文字列の一部だけを取得したい場合に非常に便利な文字列操作関数です。

基本構文

SQL ServerでSUBSTRING関数を使用する際の構文は以下のとおりです。

SUBSTRING(string, start, length)

パラメータの説明

  1. string: 抽出対象となる文字列、変数、またはカラム名を指定します。
  2. start: 部分文字列の抽出を開始する位置を整数で指定します。なお、文字列の最初の文字は「0」ではなく「1」から始まる点に注意してください。
  3. length: 文字列から抽出する文字数を正の整数で指定します。

使用時の注意点

  • lengthパラメータに負の値を指定すると、エラーが発生します。
  • start + lengthが元の文字列の長さを超える場合でもエラーにはならず、startの位置から文字列の末尾までのすべての文字が返されます。
  • 文字列の先頭や末尾から抽出したい場合は、LEFT関数やRIGHT関数も併せて確認しておくと便利です。
  • SUBSTRING関数は、SQL Server 2005以降のバージョン(SQL Server 2008 / 2008 R2 / 2012 / 2014 / 2016 / 2017)で利用可能です。

SUBSTRING関数の使用例

それでは、実際のクエリ例を見ながら、SUBSTRING関数の動作を確認してみましょう。

SELECT SUBSTRING('QuanTriMang.com', 1, 4);
-- 結果: 'Quan'

この例では、先頭(1文字目)から4文字分を抽出しています。

SELECT SUBSTRING('QuanTriMang.com', 5, 3);
-- 結果: 'Tri'

5文字目から3文字分を抽出しています。

SELECT SUBSTRING('QuanTriMang.com', 5, 15);
-- 結果: 'TriMang.com'

指定した長さ(15文字)が残りの文字数を超えているため、5文字目から文字列の末尾までがそのまま返されます。

まとめ

SUBSTRING関数を使いこなせるようになると、SQL Server上で柔軟な文字列操作が可能になります。「開始位置は1から始まる」「lengthに負の値は指定できない」というポイントを押さえながら、LEFT関数やRIGHT関数などと組み合わせて活用してみてください。

  1. 【SQL Server】AVG関数の使い方を徹底解説!基本構文から実用例まで

    本記事では、SQL Serverにおける数値処理関数「AVG」の使い方を、基本構文と具体的な使用例を交えて詳しく解説します。AVG関数の動作を正しく理解し、実務のデータ集計に活かせるようにしましょう。 AVG関数とは AVG関数は、SQL Serverにおいて式の平均値、または選択された行のうち指定した列の平均値を返す集計関数です。なお、NULLの値は自動的に除外され、平均の計算対象には含まれません。 基本構文 平均値を計算するには、SQL ServerでAVG関数を次のように記述します。 SELECT AVG(列名)FROM テーブル名[WHERE 条件]; パラメータの説明: 列名:平均

  2. SQL ServerのCOUNT関数とは?基本構文からDISTINCT・GROUP BYの活用まで徹底解説

    この記事では、SQL ServerのCOUNT関数の使い方について、具体的な構文と実行例を挙げながら詳しく解説します。COUNT関数はデータベース操作で最も頻繁に使われる集計関数の一つです。基本をしっかり押さえておくことで、日々のデータ分析やシステム開発に大きく役立ちます。 COUNT関数とは COUNT関数は、SQL Serverにおいてテーブル内のレコード(行)の件数を数えるために使用される集計関数です。重要なポイントとして、NULLが含まれる値はカウントの対象から除外されるという特性があります。 基本構文 SQL ServerでCOUNT関数を使用する際は、以下の構文を使用します。