SQL SUBSTRING 函数

一、SQL SUBSTRING 函数 语法

SQL语言中的 SUBSTRING 字符串函数显示来自原始字符串的特定索引值的字符或子字符串。我们还将 SUBSTRING 函数用于 SQL 表。

语法 1:此语法使用带有 SQL 表列名的 SUBSTRING 函数:

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

在子字符串函数的语法中,我们必须定义要执行它的列的名称。在这里,Length_of_string 参数是可选的。如果省略,则此函数显示从起始索引值开始的整个字符串。

语法 2:此语法使用带有字符串的 SUBSTRING 函数:

SELECT SUBSTRING(Original_String, Starting_Index_value, Length_of_string);  

语法 3:此语法使用带有单个字符的 SUBSTRING 函数:

SELECT SUBSTRING(String, Starting_Index_value, 1);  

二、SQL SUBSTRING 函数 示例

示例 1:以下 SELECT 查询显示给定字符串第 17 位的字符

SELECT SUBSTRING('Yiidian is a website for professionals', 14, 25) AS substring_14_25;

此 SQL 查询返回字符串中第 17 位之后的 25个带空格的字符。

输出结果为:

substring_14_25
Website for professionals

示例 2:以下 SELECT 查询显示给定字符串第 -16位的字符:

SELECT SUBSTRING( 'Yiidian is a website for professionals', -16, 5) AS substring_-17_5;  

此 SQL 查询显示字符串最后 16 位的五个字符。

substring_-16_5
or pr

示例 3:以下 SELECT 查询显示字符串第 5个位置的所有字符。

SELECT SUBSTRING( 'New Delhi IS the Capital OF India', 5) AS substring_5;  

输出结果为:

substring_5
Delhi IS the Capital OF India

示例 4:以下 SELECT 查询显示字符串第 6个位置的单个字符。

SELECT SUBSTRING( 'Yiidian', 6, 1) AS substring_6_1;  

输出结果为:

substring_6_1
n

示例 5:此示例对 SQL 表使用 SUBSTRING 函数

在此示例中,我们将创建一个新的 SQL 表,我们要在该表上执行 SUBSTRING 函数。

在 SQL 数据库中创建新表的语法如下:

CREATE TABLE table_name  
(  
First_Column_of_table Data Type (character_size of First Column),    
Second_Column_of_table Data Type (character_size of the Second column ),    
Third_Column_of_table Data Type (character_size of the Third column),    
...    
  
Last_Column_of_table Data Type (character_size of the Last column)  
);    

以下 CREATE 语句创建Student_Grade表:

CREATE TABLE Student_Grade  
(  
Roll_No INT PRIMARY KEY,    
First_Name VARCHAR (100),    
Last_Name VARCHAR (100),   
First_City Varchar(120),  
Second_City Varchar(120),  
New_City Varchar(120),  
Hindi_Marks INT,   
Maths_Marks INT,   
Grade Varchar (80)  
);  

下面的 INSERT 语句在Student_Grade表中插入学生的成绩和分数记录:

INSERT INTO Student_Grade (Roll_No, First_Name, Last_Name, First_City, Second_City, New_City, Hindi_Marks, Maths_Marks, Grade) VALUES (10, Aman, Sharma, Lucknow Chandigarh, Ghaziabad, 88, 95, A2);  
  
INSERT INTO Student_Grade   
(Roll_No, First_Name, Last_Name, First_City, Second_City, New_City, Hindi_Marks, Maths_Marks, Grade)   
VALUES ( 02, Vishal, Sharma, Chandigarh, Ghaziabad, Delhi, 95, 82, A1 );  
  
INSERT INTO Student_Grade   
(Roll_No, First_Name, Last_Name, First_City, Second_City, New_City, Hindi_Marks, Maths_Marks, Grade)   
VALUES (07, Raj, Gupta, Delhi, Ghaziabad, Lucknow, 91, 95, A1);  
  
INSERT INTO Student_Grade   
(Roll_No, First_Name, Last_Name, First_City, Second_City, New_City, Hindi_Marks, Maths_Marks, Grade)    
VALUES (04, Yash, Singhania, Ghaziabad, Delhi, Lucknow, 85, 82, A2);  
  
INSERT INTO Student_Grade   
(Roll_No, First_Name, Last_Name, First_City, Second_City, New_City, Hindi_Marks, Maths_Marks, Grade)   
VALUES (11, Vinay, Roy, Delhi, Kanpur, Ghaziabad, 95, 97, A1);  
  
INSERT INTO Student_Grade   
(Roll_No, First_Name, Last_Name, First_City, Second_City, New_City, Hindi_Marks, Maths_Marks, Grade)   
VALUES (16, Manoj, Gupta, Ghaziabad, Meerut, Chandigarh, 95, 90, B1);  
  
  
INSERT INTO Student_Grade   
(Roll_No, First_Name, Last_Name, First_City, Second_City, New_City, Hindi_Marks, Maths_Marks, Grade)   
VALUES (19, Ram, Gupta, Lucknow, Ghaziabad, Chandigarh, 89, 95, A2);  

以下 SELECT 语句显示上述Student_Grade表的插入记录:

SELECT * FROM Student_Grade;  

输出结果为:

Roll_No First_Name Last_Name First_City Second_City New_City Hindi_Marks Maths_Marks Grade
10 Aman Sharma Lucknow Chandigarh Ghaziabad 88 95 A2
02 Vishal Sharma Chandigarh Ghaziabad Ghaziabad 95 82 A1
07 Raj Gupta Delhi Ghaziabad Lucknow 91 95 A1
04 Yash Singhania Ghaziabad Delhi Lucknow 85 82 A2
11 Vinay Roy Delhi Kanpur Ghaziabad 95 97 A1
16 Manoj Gupta Ghaziabad Meerut Chandigarh 95 90 B1
19 Ram Gupta Lucknow Ghaziabad Chandigarh 89 95 A2

查询 1:以下 SELECT 查询将 SUBSTRING 函数与上述 Student_Grade 表的 Last_Name 列一起使用:

SELECT Last_Name, SUBSTRING(Last_Name, 2, 4) AS SUBSTRING_2_4 FROM Student_Grade; 

此 SQL 语句显示每个学生姓氏的第二个位置的四个字符。

输出结果为:

Last_Name SUBSTRING_2_4
Sharma harm
Sharma harm
Gupta upta
Singhania ingh
Roy oy
Gupta upta
Gupta upta

查询 2:以下 SELECT 查询将 SUBSTRING 函数与上述 Student_Grade 表的 Last_Name 列一起使用:

SELECT Last_Name, SUBSTRING(Last_Name, -3, 2) AS SUBSTRING_-3_2 FROM Student_Grade;  

此 SQL 语句显示每个学生的 La​​st name 倒数第三个位置的两个字符。

输出结果为:

Last_Name SUBSTRING_-3_2
Sharma rm
Sharma rm
Gupta pt
Singhania ni
Roy Ro
Gupta pt
Gupta pt

热门文章

优秀文章