SQL POSITION函数

SQL POSITION函数

结构化查询语言中的POSITION字符串函数返回原始字符串中给定字符或子字符串的第一次出现的位置。如果在原始字符串中省略了子字符串,则POSITION函数返回0。

POSITION字符串函数的语法

语法1: 此语法使用SQL表的列名与POSITION函数结合使用:

SELECT POSITION(String IN Column_Name) AS Alias_Name FROM Table_Name;

在语法中,我们必须指定要在其上查找字符位置的列的名称。

语法2: 此语法使用POSITION函数与字符串一起使用:

SELECT POSITION(Sub-String IN Original_String) AS Alias_Name;

语法2: 此语法使用POSITION函数及各个字符:

SELECT POSITION(Character IN Original_String) AS Alias_Name;

POSITION字符串函数示例

示例1: 以下SELECT查询显示字符S在原始字符串中的位置:

SELECT POSITION('S' IN 'SUSTAINABLE')AS POSITION_S;

输出:

POSITION_S

1

例子2: 下面的SELECT查询显示了给定字符串中DELHI单词的位置:

SELECT POSITION( 'DELHI' IN 'NEW DELHI') AS POSITION_DELHI;

输出:

POSITION_DELHI

5

示例3: 以下SELECT查询返回原始字符串中“Manufacturing Company”字符串的位置:

SELECT POSITION( 'Manufacturing Company' IN 'Honda is an indian Manufacturing company') AS Position_Manufacturing_company;

输出:

位置_制造公司

20

示例5:此示例使用POSITION函数和结构化查询语言中的表格。

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

以下插入查询语句将学生的成绩和分数记录插入到 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查询使用了POSITION函数和上面的Student_Grade表的First_Name列:

SELECT First_Name, POSITION('a' IN First_Name) AS POSITION_a FROM Student_Grade;

这个SQL语句显示了每个学生的名字中‘a’字符的位置。

输出:

First_Name POSITION_a
Aman 1
Vishal 5
Raj 2
Yash 2
Vinay 4
Manoj 2
Ram 2

查询2: 下面的SELECT查询使用了上述学生成绩表的Last_Name列的POSITION函数:

SELECT Last_Name, POSITION('S' IN Last_Name) AS POSITION_S FROM Student_Grade;

这个SQL语句显示了每个学生的姓中’S’字符的位置。

输出:

Last_Name POSITION_S
Sharma 1
Sharma 1
Gupta 0
Singhania 1
Roy 0
Gupta 0
Gupta 0

查询3: 下面的SELECT查询使用了POSITION函数,并对上述Student_Grade表中的First_City列进行操作:

SELECT First_City, POSITION('ow' IN First_City) AS POSITION_ow FROM Student_Grade;

这个SQL语句显示了每个学生的第一个城市中 ‘ow’ 字符的位置。

输出:

First_City POSITION_ow
Lucknow 6
Chandigarh 0
Delhi 0
Ghaziabad 0
Delhi 0
Ghaziabad 0
Lucknow 6

查询4: 下面的SELECT查询使用了以上Student_Grade表的Second_City和New_City列的POSITION函数:

SELECT Second_City, POSITION(z IN Second_City), New_City, POSITION(a IN New_City) FROM Student_Grade;

输出:

Second_City POSITION(z IN Second_City) New_City POSITION(a IN New_City)
Chandigarh 0 Ghaziabad 3
Ghaziabad 4 Ghaziabad 3
Ghaziabad 4 Lucknow 0
Delhi 0 Lucknow 0
Kanpur 0 Ghaziabad 3
Meerut 0 Chandigarh 3
Ghaziabad 4 Chandigarh 3

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程