logo

Funkce SUBSTR v SQL

Funkce řetězce SUBSTR v jazyce Structured Query Language zobrazuje znaky nebo dílčí řetězec ze specifické hodnoty indexu původního řetězce. SQL také umožňuje použití funkce SUBSTR s tabulkami.

Syntaxe funkce řetězce SUBSTR

Syntaxe1: Tato syntaxe používá funkci SUBSTR s názvem sloupce tabulky SQL:

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

V této syntaxi musíme definovat název toho sloupce, na kterém chceme provést funkci SUBSTR(). Zde je parametr Length_of_string volitelný. Pokud je vynechán, pak tato funkce extrahuje celý řetězec z počáteční hodnoty indexu.

Syntaxe2: Tato syntaxe používá funkci SUBSTR s řetězcem:

 SELECT SUBSTR(Original_String, Starting_Index_value, Length_of_string); 

Syntaxe2: Tato syntaxe používá funkci SUBSTR s jedním znakem:

algoritmus kmp
 SELECT SUBSTR(String, Starting_Index_value, 1); 

Příklady funkce SUBSTR String

Příklad 1: Následující dotaz SELECT zobrazuje znaky ze 17čtpozici daného řetězce.

regexp_like v mysql
 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. 

Výstup:

 website for professionals 

Příklad 2: Následující dotaz SELECT zobrazuje znaky z -17čtpozice daného řetězce:

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

Tento SQL dotaz zobrazuje pět znaků z posledních 17čtpoloha struny.

Výstup:

 website for professionals 

Příklad 3: Následující dotaz SELECT zobrazuje všechny znaky z 5čtpoloha struny.

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

Výstup:

 Delhi IS the Capital OF India 

Příklad 4: Následující dotaz SELECT zobrazuje jeden znak z 8čtpoloha struny.

parafrázovat jako rudyard kipling
 SELECT SUBSTR( 'JavaTpoint', 8, 1); 

Výstup:

 n 

Příklad 5: Tento příklad používá funkci SUBSTR s tabulkou SQL

V tomto příkladu vytvoříme novou tabulku, na které chceme provést funkci SUBSTR.

ddl vs dml

V tomto příkladu musíme vytvořit novou SQL tabulku, jejímž prostřednictvím budeme spouštět funkci Concat() na sloupcích. Syntaxe pro vytvoření nové SQL tabulky je uvedena v následujícím bloku:

 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, 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); 

Následující příkaz SELECT zobrazí vložené záznamy výše Student_Marks stůl:

 SELECT * FROM Student_Marks; 

Student_Id Student_First_Jméno Student_Middle_Name Student_Last_Jméno Student_Class Student_City Student_Stát Student_Marks
4001 Bezpečný Royi Sharma 4 Čandígarh Paňdžáb 88
4002 Vishal Gurr Sharma 8 Murthal Haryana 95
4007 Raj Singhania Gupta 6 Ghaziabad Uttarpradéš 91
4004 Yash Chopra Singhania 9 Jaipur Rádžasthán 85
4011 Vinay Sharma Royi 8 Čandígarh Paňdžáb 94
4006 Manoj Singhania Gupta 5 Ghaziabad Uttarpradéš 83
4010 RAM Raheem Gupta 9 Lucknow Uttarpradéš 89

Dotaz 1: Následující dotaz SELECT používá funkci SUBSTR se sloupcem Student_Last_Name výše uvedené tabulky Student_Marks:

 SELECT Student_Last_Name, SUBSTR(Student_Last_Name, 2, 4) AS SUBSTR_2_4 FROM Student_Marks; 

Tento příkaz SQL zobrazuje čtyři znaky za 2ndpozice Příjmení každého studenta.

odstranit mezipaměť npm

Výstup:

Student_Last_Jméno SUBSTR_2_4
Sharma poškodit
Sharma poškodit
Gupta upta
Singhania Angličtina
Royi Ltd
Gupta upta
Gupta upta

Dotaz 2: Následující dotaz SELECT používá funkci SUBSTR se sloupcem Student_Last_Name výše uvedené tabulky Student_Marks:

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

Tento příkaz SQL zobrazuje dva znaky ze třetí poslední pozice příjmení každého studenta.

Výstup:

Student_Last_Jméno SUBSTR_-3_2
Sharma rm
Sharma rm
Gupta pt
Singhania v
Royi Ro
Gupta pt
Gupta pt