- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - BOOLEAN (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION 与 UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接与右连接
- SQL - Union 与 Join
- SQL 键
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 组合键
- SQL - 备用键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 集群索引
- SQL - 非集群索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - Min & Max
- SQL - 空值函数
- SQL - 检查约束
- SQL - 默认约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - Group By 与 Order By
- SQL - IN 与 EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
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 | +-----------+
示例
以下是一个将starting_position作为参数传递给 CHARINDEX() 函数的示例。
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 | +---------+---------------+