SQL 中的 POSITION 函数

2024 年 8 月 29 日 | 4 分钟阅读

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

POSITION 字符串函数语法

语法1:此语法使用 SQL 表的列名来使用 POSITION 函数

在语法中,我们需要指定想要查找字符位置的列名。

语法2:此语法使用字符串来使用 POSITION 函数

语法2:此语法使用单个字符来使用 POSITION 函数

POSITION 字符串函数示例

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

输出

POSITION_S
1

示例 2:以下 SELECT 查询显示 "DELHI" 这个词在给定字符串中的位置

输出

POSITION_DELHI
5

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

输出

POSITION_Manufacturing_company
20

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

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

以下 CREATE 语句创建了 Student_Grade

以下 INSERT 查询在 Student_Grade 表中插入了学生成绩和分数记录

以下 SELECT 语句显示了上面 Student_Grade 表中插入的记录


Roll_No名字姓氏First_CitySecond_CityNew_CityHindi_MarksMaths_Marks级别
10阿曼Sharma勒克瑙昌迪加尔Ghaziabad8895A2
02VishalSharma昌迪加尔GhaziabadGhaziabad9582A1
07Raj古普塔德里Ghaziabad勒克瑙9195A1
04YashSinghaniaGhaziabad德里勒克瑙8582A2
11VinayRoy德里KanpurGhaziabad9597A1
16马诺吉古普塔GhaziabadMeerut昌迪加尔9590B1
19Ram古普塔勒克瑙Ghaziabad昌迪加尔8995A2

查询 1:以下 SELECT 查询使用上面 Student_Grade 表的 First_Name 列来使用 POSITION 函数

此 SQL 语句显示每个学生名字中字符 'a' 的位置。

输出

名字POSITION_a
阿曼1
Vishal5
Raj2
Yash2
Vinay4
马诺吉2
Ram2

查询 2:以下 SELECT 查询使用上面 Student_Grade 表的 Last_Name 列来使用 POSITION 函数

此 SQL 语句显示每个学生姓氏中字符 'S' 的位置。

输出

姓氏POSITION_S
Sharma1
Sharma1
古普塔0
Singhania1
Roy0
古普塔0
古普塔0

查询 3:以下 SELECT 查询使用上面 Student_Grade 表的 First_City 列来使用 POSITION 函数

此 SQL 语句显示每个学生名字中 'ow' 这个字符串的位置。

输出

First_CityPOSITION_ow
勒克瑙6
昌迪加尔0
德里0
Ghaziabad0
德里0
Ghaziabad0
勒克瑙6

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

输出

Second_CityPOSITION(z IN Second_City)New_CityPOSITION(a IN New_City)
昌迪加尔0Ghaziabad3
Ghaziabad4Ghaziabad3
Ghaziabad4勒克瑙0
德里0勒克瑙0
Kanpur0Ghaziabad3
Meerut0昌迪加尔3
Ghaziabad4昌迪加尔3