Funkce řetězce SUBSTRING_INDEX zobrazuje všechny znaky před specifickým symbolem v daném řetězci.
Syntaxe funkce řetězce SUBSTRING_INDEX
Syntaxe1: Tato syntaxe používá SUBSTRING_INDEX s názvem sloupce tabulky SQL:
SELECT SUBSTRING_INDEX(Column_Name, symbol, starting_position) AS Alias_Name FROM Table_Name;
V syntaxi musíme zadat název toho sloupce, na kterém chceme provést řetězcovou funkci SUBSTRING_INDEX.
Syntaxe2: Tato syntaxe používá funkci SUBSTRING_INDEX s řetězcem:
SELECT SUBSTRING_INDEX(Original_String, symbol, starting_position);
Příklady funkce řetězce SUBSTRING_INDEX
Příklad 1: Následující dotaz SELECT zobrazuje čtyři znaky před daným symbolem v původním slově JAVA^TPOINT:
SELECT SUBSTRING_INDEX( 'JAVA^TPOINT', '^', 1) AS SUBSTRING_INDEX_4_znaků;
čísla abecedy
Výstup:
| SUBSTRING_INDEX_4_znaků |
| JÁVA |
Příklad 2: Následující dotaz SELECT zobrazuje SUBSTRING_INDEX 20 znaků z daného řetězce:
SELECT SUBSTRING_INDEX( 'JAVATPOINT is a. good website', '.', 1 ) AS SUBSTRING_INDEX_before.symbol;
Výstup:
| SUBSTRING_INDEX_before.symbol |
| JAVATPOINT je a |
Příklad 3: Následující dotaz SELECT zobrazuje 5 znaků od třetí pozice po daný symbol v daném slově „blahopřání“:
SELECT SUBSTRING_INDEX( '[email protected]', '@', 3) AS SUBSTRING_INDEX_before@symbol;
Výstup:
| SUBSTRING_INDEX_before@symbol |
| MILUJI TO |
Příklad 4: Následující dotaz SELECT zobrazuje 20 znaků od páté pozice po daný symbol v daném řetězci:
SELECT SUBSTRING_INDEX('New Delhi is the capital# of India', '#', 5) AS SUBSTRING_INDEX_5_characters;
Výstup:
| SUBSTRING_INDEX_before#symbol |
| Hlavním městem je Dillí |
Příklad 6: Tento příklad používá funkci SUBSTRING_INDEX s tabulkou v jazyce Structured Query Language.
Abychom porozuměli funkci SUBSTRING_INDEX s SQL, musíme nejprve vytvořit SQL tabulku pomocí příkazu CREATE. Syntaxe pro vytvoření nové tabulky v databázi SQL je následující:
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) );
Následující příkaz CREATE vytvoří Student_Marks stůl:
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 );
Níže uvedené dotazy INSERT vkládají záznamy fakult vysoké školy do Student_Marks stůl:
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);
Následující příkaz SELECT zobrazí vložené záznamy výše Student_Marks stůl:
SELECT * FROM Student_Marks;
| Schoolboy_Id | Školák_křestní_jméno | Školák_Middle_Jméno | Školák_Příjmení | Školák_třída | Školák_město | Školák_stát | Školák_Marks |
|---|---|---|---|---|---|---|---|
| 4001 | Muž | Royi | Sha#rma | 4 | Čandígarh | Paňdžáb | 88 |
| 4002 | Vish.al | Gurr | Sh#zbraň | 8 | Murthal Harya#na | 95 | |
| 4007 | Raj. | Singhania | Gupt#a | 6 | Ghaziabad | Uttarpradéš | 91 |
| 4004 | Yas.h | Chopra | Singh#ania | 9 | Jaipur | Rádžasthán# | 85 |
| 4011 | Vin.ay | Sharma | Roy# | 8 | Čandígarh | Paňdžáb# | 94 |
| 4006 | ouha | Singhania | Gup#ta | 5 | Ghaziabad | Uttar Pra#desh | 83 |
| 4010 | RAM | Raheem | Gupt#a | 9 | Lucknow | Uttarpradéš | 89 |
Dotaz 1: Následující dotaz SELECT používá funkci SUBSTRING_INDEX se sloupcem Student_First_Name výše uvedené tabulky Student_Marks:
SELECT Student_First_Name, SUBSTRING_INDEX(Student_First_Name, ., 1) AS SUBSTRING_INDEX_before.symbol FROM Student_Marks;
Tento příkaz SQL zobrazuje znaky od první pozice po symbol # v křestním jménu každého studenta.
Výstup:
| Student_First_Jméno | SUBSTRING_INDEX_before.symbol |
|---|---|
| Muž | Nebo |
| Vish.al | příchod |
| Raj. | Raj |
| Yas.h | Plastický |
| Vin.ay | Přijít |
| ouha | Muž |
| RAM | slunce |
Dotaz 2: Následující dotaz SELECT používá funkci SUBSTRING_INDEX se sloupcem Student_Last_Name ve výše uvedené tabulce Student_Marks:
SELECT Student_Last_Name, SUBSTRING_INDEX(Student_Last_Name, #, 1) AS SUBSTRING_INDEX_before#symbol FROM Student_Marks;
Tento příkaz SQL zobrazuje znaky od první pozice po symbol # v příjmení každého studenta.
Výstup:
| Student_Last_Jméno | SUBSTRING_INDEX_before#symbol |
|---|---|
| Sha#rma | Napít se |
| Sh#zbraň | Sh |
| Gupt#a | Gupt |
| Singh#ania | Singh |
| Roy# | Royi |
| Gup#ta | Gup |
| Gupt#a | Gupt |
Dotaz 3: Následující dotaz SELECT používá funkci SUBSTRING_INDEX se sloupcem Student_Address výše uvedené tabulky Student_Marks:
SELECT Student_State, SUBSTRING_INDEX(Student_State, @, 2) AS SUBSTRING_INDEX_@symbol FROM Student_Marks;
Tento příkaz SQL zobrazuje znaky od druhé pozice po daný symbol ve stavu každého studenta.
Výstup:
| Student_Stát | SUBSTRING_INDEX_@symbol |
|---|---|
| Paňdžáb | A |
| Harya@na | arya |
| Uttar Pra@adesh | ttar Pr |
| Rajasthan@ | časové místo |
| Paňdžáb@ | odpíchnout |
| Uttar Pradesh@desh | ttar Pra |
| Uttar Pra@adesh | ttar Pr |