logo

SQLのSUBSTR関数

構造化照会言語の SUBSTR 文字列関数は、元の文字列の特定のインデックス値の文字または部分文字列を表示します。 SQL では、テーブルで SUBSTR 関数を使用することもできます。

SUBSTR文字列関数の構文

構文1: この構文では、SQL テーブルの列名を指定した SUBSTR 関数を使用します。

 SELECT SUBSTR(Column_Name, Starting_Index_value, Length_of_string) AS Alias_Name FROM Table_Name; 

この構文では、SUBSTR() 関数を実行する列の名前を定義する必要があります。ここで、Length_of_string パラメータはオプションです。省略した場合、この関数は開始インデックス値から文字列全体を抽出します。

構文2: この構文では、次の文字列を指定した SUBSTR 関数を使用します。

 SELECT SUBSTR(Original_String, Starting_Index_value, Length_of_string); 

構文2: この構文では、単一の文字を含む SUBSTR 関数を使用します。

集合の代数
 SELECT SUBSTR(String, Starting_Index_value, 1); 

SUBSTR 文字列関数の例

例 1: 次の SELECT クエリは、17 文字の文字を示しています。番目指定された文字列の位置。

 SELECT SUBSTR( 'JavaTpoint is a website for professionals', 17, 24); This SQL query returns the 24 characters with spaces after the 17th position in the string. 

出力:

 website for professionals 

例 2: 次の SELECT クエリは、-17 の文字を示しています。番目指定された文字列の位置:

 SELECT SUBSTR( 'JavaTpoint is a website for professionals', -17, 5); 

この SQL クエリは、最後の 17 文字から 5 文字を表示します。番目文字列の位置。

クイックソートアルゴリズム

出力:

 website for professionals 

例 3: 次の SELECT クエリは、5 つの文字をすべて表示します。番目文字列の位置。

 SELECT SUBSTR( 'New Delhi IS the Capital OF India', 5); 

出力:

 Delhi IS the Capital OF India 

例 4: 次の SELECT クエリは、8 文字のうちの 1 文字を示しています。番目文字列の位置。

 SELECT SUBSTR( 'JavaTpoint', 8, 1); 

出力:

プロローグ言語
 n 

例 5: この例では、SQL テーブルで SUBSTR 関数を使用します。

この例では、SUBSTR 関数を実行する新しいテーブルを作成します。

この例では、列に対して Concat() 関数を実行する新しい SQL テーブルを作成する必要があります。新しい SQL テーブルを作成するための構文については、以下のブロックで説明します。

州のリスト
 CREATE TABLE table_name ( First_Column_of_table Data Type (character_size of 1st Column), Second_Column_of_table Data Type (character_size of the 2nd column ), Third_Column_of_table Data Type (character_size of the 3rd column), ... Last_Column_of_table Data Type (character_size of the Nth column) ); 

次の CREATE ステートメントは、 Student_Marks テーブル:

 CREATE TABLE Student_Marks ( Student_ID INT NOT NULL PRIMARY KEY, Student_First_Name VARCHAR (100), Student_Middle_Name VARCHAR (100), Student_Last_Name VARCHAR (100), Student_Class INT NOT NULL, Student_City Varchar(120), Student_State Varchar (80), Student_Marks INT ); 

以下の INSERT クエリは、大学の学部のレコードを Student_Marks テーブル:

 INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4001, Aman, Roy, Sharma, 4, Chandigarh, Punjab, 88); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES ( 4002, Vishal, Gurr, Sharma, 8, Murthal, Haryana, 95 ); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4007, Raj, singhania, Gupta, 6, Ghaziabad, Uttar Pradesh, 91); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4004, Yash, Chopra, Singhania, 9, Jaipur, Rajasthan, 85); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4011, Vinay, Sharma, Roy, 8, Chandigarh, Punjab, 94); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4006, Manoj, singhania, Gupta, 5, Ghaziabad, Uttar Pradesh, 83); INSERT INTO Student_Marks (Student_ID, Student_First_Name, Student_Middle_Name, Student_Last_Name, Student_Class, Student_City, Student_State, Student_Marks) VALUES (4010, Ram, Raheem, Gupta, 9, Lucknow, Uttar Pradesh, 89); 

次の SELECT ステートメントは、上記の挿入されたレコードを表示します。 Student_Marks テーブル:

 SELECT * FROM Student_Marks; 

学生証 Student_First_Name Student_Middle_Name Student_Last_Name 学生_クラス 学生_都市 学生_州 Student_Marks
4001 安全 ロイ シャルマ 4 チャンディーガル パンジャーブ 88
4002 ヴィシャル ガー シャルマ 8 ムルサル ハリヤナ州 95
4007 ラージ シンガニア グプタ 6 ガーズィヤーバード ウッタル・プラデーシュ州 91
4004 ヤシュ チョプラ シンガニア 9 ジャイプール ラジャスタン州 85
4011 ビネ シャルマ ロイ 8 チャンディーガル パンジャーブ 94
4006 マノージ シンガニア グプタ 5 ガーズィヤーバード ウッタル・プラデーシュ州 83
4010 ラム ラヒーム グプタ 9 ラクナウ ウッタル・プラデーシュ州 89

クエリ 1: 次の SELECT クエリでは、上記 Student_Marks テーブルの Student_Last_Name 列で SUBSTR 関数を使用します。

差分を切り詰めて削除する
 SELECT Student_Last_Name, SUBSTR(Student_Last_Name, 2, 4) AS SUBSTR_2_4 FROM Student_Marks; 

この SQL ステートメントは、2 の後の 4 文字を示しています。nd各生徒の姓の位置。

出力:

Student_Last_Name SUBSTR_2_4
シャルマ 危害
シャルマ 危害
グプタ アップタ
シンガニア 英語
ロイ 株式会社
グプタ アップタ
グプタ アップタ

クエリ 2: 次の SELECT クエリでは、上記 Student_Marks テーブルの Student_Last_Name 列で SUBSTR 関数を使用します。

 SELECT Student_Last_Name, SUBSTR(Student_Last_Name, -3, 2) AS SUBSTR_-3_2 FROM Student_Marks; 

この SQL ステートメントは、各学生の姓の下から 3 番目の位置から 2 文字を表示します。

出力:

Student_Last_Name SUBSTR_-3_2
シャルマ rm
シャルマ rm
グプタ ポイント
シンガニア
ロイ
グプタ ポイント
グプタ ポイント