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 语句显示每个学生的 Last name 倒数第三个位置的两个字符。
输出结果为:
Last_Name | SUBSTRING_-3_2 |
---|---|
Sharma | rm |
Sharma | rm |
Gupta | pt |
Singhania | ni |
Roy | Ro |
Gupta | pt |
Gupta | pt |
热门文章
优秀文章