SQL CHARINDEX()函数

SQL CHARINDEX()函数

SQL CHARINDEX()函数在指定位置开始搜索字符串中的子字符串,并返回找到的子字符串的位置。如果没有找到子字符串,该函数返回0。它接受三个参数,子字符串,字符串(要搜索的字符串),开始位置(可选参数)搜索将开始的位置。

我们搜索的子字符串不应超过8000个字符。SQL提供了各种字符串类型,包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。使用SQL中的字符串函数,我们可以操纵字符串值。

语法

以下是SQL CHARINDEX()函数的语法−

CHARINDEX(substring, string, start)

参数

这里,CHARINDEX()函数接受三个参数-

  • substring - 要搜索的子字符串,限制为8000个字符。

  • string - 要搜索的字符串。

  • start - 这是一个可选参数。搜索将开始的位置(如果不想从字符串的开头开始)。字符串中的第一个位置是1。

返回值

该函数返回给定字符串中子字符串的位置,如果在字符串中找不到子字符串,则函数返回0。

示例

以下是使用CHARINDEX()函数搜索字符的示例。

SELECT CHARINDEX('s', 'Tutorialspoint') As charindex;

输出

执行以上语句后会产生以下输出结果:

+-----------+
| charindex |
+-----------+
|     9     |
+-----------+

示例

以下是使用CHARINDEX()函数搜索子字符串的示例。

SELECT CHARINDEX('educate', 'Tutorialspoint is an online educate company') 
As charindex ;

输出

执行上述语句会产生以下输出 –

+-----------+
| charindex |
+-----------+
|    29     |
+-----------+

示例

以下是一个示例,用于搜索一个与给定字符串不匹配的子字符串。

SELECT CHARINDEX('learning', 'Tutorialspoint is an online educate company') 
As charindex ;

输出

执行上述语句后,产生以下输出结果-

+-----------+
| charindex |
+-----------+
|    0      |
+-----------+

示例

以下是在CHARINDEX()函数中将 starting_position 作为参数传递的示例。

SELECT CHARINDEX('educate', 'Tutorialspoint is an online educate company', 14) 
As charindex ;

输出

执行上述语句后,会产生以下输出:

+-----------+
| charindex |
+-----------+
|    29     |
+-----------+

示例

您可以将表列作为参数传递给 CHARINDEX() 函数,以在特定列中搜索字符。假设我们使用 CREATE 语句创建了一个名为Customers的表,如下所示:

create table CUSTOMERS(
   ID INT NOT NULL, 
   NAME VARCHAR(15) NOT NULL, 
   AGE INT NOT NULL, 
   ADDRESS CHAR(25), 
   SALARY DECIMAL(10, 4), PRIMARY KEY(ID)
);

现在让我们使用INSERT语句将 七条 记录插入到customers表中,如下所示:−

insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(3, 'kaushik', 23, 'Kota', 2000.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(6, 'Komal', 22, 'MP', 4500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(7, 'Muffy', 24, 'Indore', 10000.00);

下面的SELECT查询使用CHARINDEX()函数在CUSTOMERS表的NAME列中搜索字符”a”。

SELECT NAME, CHARINDEX('a', NAME) AS CHAR_INDEX FROM CUSTOMERS;

输出

以下是上述查询的输出结果 –

+---------+---------------+
|   NAME  |  CHAR_INDEX   |
+---------+---------------+               
|  Ramesh |      2        |
|  Khilan |      5        |
|  kaushik|      2        |
| Chaitali|      3        |
|  Hardik |      2        |
|  Komal  |      4        |
|  Muffy  |      0        |
+---------+---------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程