SQL 中的 PATINDEX 函数

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

SQL中的PATINDEX字符串函数返回指定模式在原始字符串中的位置。如果原始字符串中省略了子字符串,则PATINDEX函数返回0。原始字符串的第一个位置表示为1。

PATINDEX字符串函数语法

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

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

语法2:此语法使用字符串的PATINDEX函数

PATINDEX字符串函数示例

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

输出

PATINDEX_S
1

示例2:以下SELECT查询显示给定字符串中DELHI单词的PATINDEX

输出

PATINDEX_DELHI
5

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

输出

PATINDEX_Manufacturing_company
20

示例4:此示例在结构化查询语言中使用表和PATINDEX函数。

在 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列的PATINDEX函数

此SQL语句显示每个学生名字中字符“a”的PATINDEX。

输出

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

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

此SQL语句显示每个学生姓氏中字符“S”的PATINDEX。

输出

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

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

此SQL语句显示每个学生所在城市的“ow”子字符串的PATINDEX。

输出

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

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

输出


Second_CityPATINDEX_zNew_CityPATINDEX_a
昌迪加尔0Ghaziabad3
Ghaziabad4Ghaziabad3
Ghaziabad4勒克瑙0
德里0勒克瑙0
Kanpur0Ghaziabad3
Meerut0昌迪加尔3
Ghaziabad4昌迪加尔3

下一个主题SQL中的PI函数