SQL ServerのSUBSTRING関数 は、指定された位置から始まり、オプションの長さで文字列から部分文字列を抽出するために使用されます。
これは、さらに処理または分析するために文字列の特定の部分を抽出する必要がある場合に非常に便利です。
SQL SUBSTRING 関数は以下でも機能します。 Azure SQLデータベース 、 Azure SQL データ ウェアハウス 、 そして 並列データ ウェアハウス 。
構文
SQL SUBSTRING 関数の構文は次のとおりです。
SUBSTRING(入力文字列, 開始, 長さ);
パラメーター:
- 入力文字列 – 文字、バイナリ、テキスト、またはイメージ式を使用できます。
- 始める - これは、返される部分文字列が開始する位置を定義する整数です。文字列の最初の位置は 1 です。
- 長さ - これは、部分文字列から返される文字数を指定する正の整数です。
- 戻り値 - 入力文字列内の位置から始まる指定された長さの部分文字列を返します。
SQL Server SUBSTRING() 関数の例
SQL の SUBSTRING() 関数の例をいくつか見て、SQL サーバーでの使用方法を理解しましょう。
SQL SUBSTRING 関数の例
この例では、SQL Server の SUBSTRING 関数を使用します。
クエリ:
SELECT SUBSTRING ('techcodeview.com',1,5);> 出力:

SQL での SUBSTRING() 関数の使用規則
- SQL substring() 関数では、3 つの引数すべてが必要です。開始位置が式内の最大文字数を超える場合、SQL Server の substring() 関数は何も返しません。
- 合計の長さは、元の文字列の最大文字長を超えることができます。
- この場合、結果の部分文字列は、式の開始位置から式の終了文字までの文字列全体になります。
リテラル文字列を使用した SUBSTRING() 関数
リテラル文字列で SQL SUBSTRING 関数を使用するのは非常に簡単で、構文に必要な値を入力するだけです。
ビンからBCDへ
リテラル文字列を使用した SUBSTRING() 関数の例
次の SQL SUBSTRING 関数コマンドを考えてみましょう。
SELECT SUBSTRING ( 'SQL In Geeksforgeeks', 7, 18 ) AS ExtractString>
元の文字列「SQL In Geeksforgeeks」を取得し、7 番目の文字から始まる 18 文字の長さの部分文字列を抽出します。エイリアス ExtractString を持つ新しい列が、結果の部分文字列とともに返されます。
あらかじめ決められた開始位置と長さに基づいて文字列のセクションを抽出するには、SUBSTRING 関数を利用します。元の文字列は関数の最初の引数として渡され、2 番目の引数は開始文字 (この場合は 7 番目の文字) を指定します。 3 番目の引数 (この場合は 18 文字) は、抽出する部分文字列の長さを指定します。
この SQL クエリを使用する目的は、さらなる分析やレポートに必要な長い文字列の特定の部分を抽出することです。これは、長いテキスト文字列から特定の情報を抽出して操作する必要がある大規模なデータセットを扱うときに役立ちます。
出力

テーブル列を含む SUBSTRING() 関数
テーブル列で SUBSTRING() 関数を使用するには、まずテーブルを作成します。 プレイヤーの詳細 これには、PlayerId、PlayerName、City の 3 つの列があります。 PlayerId 列が主キーとして指定されているため、テーブル内の各行は識別子として異なる PlayerId を持ちます。
テーブルの作成後、INSERT INTO ステートメントを使用して 10 行のデータがテーブルに追加されます。 PlayerId 列は各行の一意の識別子として自動的に生成されますが、PlayerName 列と City 列には各行に指定された値があります。
クエリ:
CREATE TABLE Player_Details ( PlayerId INT PRIMARY KEY , PlayerName VARCHAR(50), City VARCHAR(50) ); INSERT INTO Player_Details (PlayerId, PlayerName, City) VALUES (1,'John', 'New York'), (2,'Sarah', 'Los Angeles'), (3,'David', 'Chicago'), (4,'Emily', 'Houston'), (5,'Michael', 'Phoenix'), (6,'Ava', 'Philadelphia'), (7,'Joshua', 'San Antonio'), (8,'Sophia', 'San Diego'), (9,'Daniel', 'Dallas'), (10,'Olivia', 'San Jose');>
出力:

CSS上で画像を中央に配置する方法
テーブル列を含む SUBSTRING() 関数の例
この例では、テーブルの列に対して SUBSTRING() 関数を使用します。
クエリ
SELECT SUBSTRING (PlayerName, 1, 3) AS ExtractString FROM Player_Details;>
出力
企業対企業

サブクエリの PlayerName 列は、各名前の最初の 3 文字を選択する SUBSTRING 関数を受け取ります。この部分文字列操作の結果は、サブクエリからの PlayerName 列を、別名 ExtractString を持つ新しい列で返します。
ネストされたクエリでの SUBSTRING の使用
player_Details テーブル内のネストされたクエリで SUBSTRING 関数を使用すると仮定すると、次の SQL コードを使用できます。
クエリ
SELECT SUBSTRING (subquery.PlayerName, 1, 3) AS ShortenedName, subquery.City FROM ( SELECT * FROM Player_Details WHERE City = 'New York' ) AS subquery;>
出力

Player_Details テーブルから City 列が New York に等しいすべての行を選択するために、この SQL クエリは最初にネストされたクエリを作成します。この入れ子になったクエリの結果を含む派生テーブルまたはサブクエリは、SUBSTRING 関数の入力として使用されます。
サブクエリの PlayerName 列は、各名前の最初の 3 文字を選択する SUBSTRING 関数を受け取ります。この部分文字列操作の結果は、サブクエリの City 列とともに、別名 ShortenedName を持つ新しい列で返されます。
重要な関数 SQL SUBSTRING 関数について
- SUBSTRING() 関数は、指定された位置から始まり、オプションの長さで文字列から部分文字列を抽出します。
- リテラル文字列またはテーブル内の列とともに使用できます。
- の 左() そして 右() 関数は SUBSTRING() 関数の実装でもあります。
- WHERE 句で SUBSTRING() を使用すると、関数が行ごとに実行されるため、クエリのパフォーマンスに悪影響を及ぼします。