logo

SQLのSUBSTRING_INDEX関数

SUBSTRING_INDEX 文字列関数は、指定された文字列内の特定の記号の前のすべての文字を表示します。

SUBSTRING_INDEX 文字列関数の構文

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

 SELECT SUBSTRING_INDEX(Column_Name, symbol, starting_position) AS Alias_Name FROM Table_Name; 

構文では、SUBSTRING_INDEX 文字列関数を実行する列の名前を指定する必要があります。

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

Linuxでディレクトリの名前を変更する方法
 SELECT SUBSTRING_INDEX(Original_String, symbol, starting_position); 

SUBSTRING_INDEX 文字列関数の例

例 1: 次の SELECT クエリは、元の単語 JAVA^TPOINT 内の指定された記号の前の 4 文字を表示します。

SELECT SUBSTRING_INDEX( 'JAVA^TPOINT', '^', 1) AS SUBSTRING_INDEX_4_characters;

出力:

SUBSTRING_INDEX_4_characters
ジャワ

例 2: 次の SELECT クエリは、指定された文字列からの SUBSTRING_INDEX 20 文字を表示します。

Javaのjvm
 SELECT SUBSTRING_INDEX( 'JAVATPOINT is a. good website', '.', 1 ) AS SUBSTRING_INDEX_before.symbol; 

出力:

SUBSTRING_INDEX_before.symbol
JAVATポイントは、

例 3: 次の SELECT クエリは、指定された「おめでとう」という単語の 3 番目の位置から指定された記号までの 5 文字を表示します。

 SELECT SUBSTRING_INDEX( '[email protected]', '@', 3) AS SUBSTRING_INDEX_before@symbol; 

出力:

SUBSTRING_INDEX_before@symbol
大好きです

例 4: 次の SELECT クエリは、指定された文字列内の 5 番目の位置から指定された記号までの 20 文字を表示します。

 SELECT SUBSTRING_INDEX('New Delhi is the capital# of India', '#', 5) AS SUBSTRING_INDEX_5_characters; 

出力:

文字列の連結
SUBSTRING_INDEX_before#symbol
首都はデリー

例 6: この例では、構造化照会言語のテーブルで SUBSTRING_INDEX 関数を使用します。

SQL で SUBSTRING_INDEX 関数を理解するには、まず CREATE ステートメントを使用して 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, Stude.nt_Marks) VALUES (4001, Ama.n, Roy, Sha#rma, 4, Chandigarh, Pun#jab, 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, Vish.al, Gurr, Sh#arma, 8, Murthal, Harya#na, 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, Gupt#a, 6, Ghaziabad, Uttar Pr#adesh, 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, Yas.h, Chopra, Singh#ania, 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, Vin.ay, 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, Man.oj, singhania, Gup#ta, 5, Ghaziabad, Uttar Pr#adesh, 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, Ra.m, Raheem, Gupt#a, 9, Lucknow, Uttar Pra#desh, 89); 

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

 SELECT * FROM Student_Marks; 

男子学生ID 男子生徒_名 男子生徒_ミドルネーム 男子生徒の姓 男子生徒_クラス 男子学生_市 男子生徒_州 スクールボーイ_マークス
4001 ロイ シャ#マ 4 チャンディーガル パンジャーブ 88
4002 ヴィシュアル ガー Sh#武器 8 ムルサル・ハリヤ#ナ 95
4007 ラージ。 シンガニア グプト#a 6 ガーズィヤーバード ウッタル・プラデーシュ州 91
4004 ヤス チョプラ シン#アニア 9 ジャイプール ラジャスタン州# 85
4011 ヴィンアイ シャルマ ロイ# 8 チャンディーガル パンジャーブ# 94
4006 ああ、ああ。 シンガニア グプタ 5 ガーズィヤーバード ウッタル・プラ#デシュ 83
4010 ラム ラヒーム グプト#a 9 ラクナウ ウッタル・プラデーシュ州 89

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

 SELECT Student_First_Name, SUBSTRING_INDEX(Student_First_Name, ., 1) AS SUBSTRING_INDEX_before.symbol FROM Student_Marks; 

この SQL ステートメントは、各学生の名の最初の位置から # 記号までの文字を示します。

出力:

Javaの現在の日付
Student_First_Name SUBSTRING_INDEX_before.symbol
または
ヴィシュアル 到来
ラージ。 ラージ
ヤス プラスチック
ヴィンアイ 来る
ああ、ああ。
ラム 太陽

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

 SELECT Student_Last_Name, SUBSTRING_INDEX(Student_Last_Name, #, 1) AS SUBSTRING_INDEX_before#symbol FROM Student_Marks; 

この SQL ステートメントは、各学生の姓の最初の位置から # 記号までの文字を示します。

出力:

Student_Last_Name SUBSTRING_INDEX_before#symbol
シャ#マ 飲む
Sh#武器 シュ
グプト#a グプト
シン#アニア シン
ロイ# ロイ
グプタ グップ
グプト#a グプト

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

 SELECT Student_State, SUBSTRING_INDEX(Student_State, @, 2) AS SUBSTRING_INDEX_@symbol FROM Student_Marks; 

この SQL ステートメントは、各生徒の状態の 2 番目の位置から指定された記号までの文字を表示します。

出力:

学生_州 SUBSTRING_INDEX_@symbol
パンジャーブ ある
ハリヤ@ナ アーヤ
ウッタル プラ@アデシュ タタール PR
ラジャスタン州@ 時間 場所
パンジャーブ@ アンジャブ
ウッタル プラデーシュ州@desh タタール・プラ
ウッタル プラ@アデシュ タタール PR