- 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 - INSERT 查询
- SQL - SELECT 查询
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - UPDATE 查询
- SQL - DELETE 查询
- 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 - 布尔 (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 vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - INNER JOIN
- SQL - LEFT JOIN
- SQL - RIGHT JOIN
- SQL - CROSS JOIN
- SQL - FULL JOIN
- SQL - 自连接
- SQL - DELETE JOIN
- SQL - UPDATE JOIN
- SQL - LEFT JOIN vs RIGHT JOIN
- SQL - UNION vs JOIN
- SQL 密钥
- SQL - UNIQUE KEY
- SQL - PRIMARY KEY
- SQL - FOREIGN KEY
- SQL - 组合键
- SQL - 备选键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - UNIQUE INDEX
- SQL - 聚簇索引
- SQL - 非聚簇索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - MIN & MAX
- SQL - NULL 函数
- SQL - CHECK 约束
- SQL - DEFAULT 约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - STUFF() 函数
SQL 的STUFF()函数用于将一个字符串插入到另一个字符串中。
它接受四个参数char_exp、start、length和replace_with_exp,删除第一个字符串中从起始位置开始的指定长度的字符,然后将第二个字符串插入到第一个字符串的起始位置。
如果start参数值为负数、零或长于第一个表达式,则返回空字符串。
如果length参数值为负数,则返回空字符串;如果长度长于第一个表达式,则删除到第二个表达式中的最后一个字符。
如果length为零,则在起始位置插入,并且不从第一个表达式中删除任何字符。
语法
以下是 SQL STUFF()函数的语法:
STUFF ( character_expression , start , length , replace_with_expression )
参数
character_expression - 它是字符数据的表达式(第一个字符串)。
start - 它是指定开始删除和插入位置的整数值。
length - 它是指定要删除的字符个数的整数值。
replace_with_expression - 它是字符数据的表达式(第二个字符串)。
返回值
此函数通过在指定删除位置插入第二个表达式来返回一个新字符串。
示例
在下面的示例中,我们使用 SQL STUFF()函数将字符串“world”插入到第一个字符串“hello”中,起始位置为2,长度为3。
SELECT STUFF('hello', 2, 3, 'world') AS NEW_STR;
输出
上述 SQL 查询生成以下输出:
+----------+ | NEW_STR | +----------+ | hworldo | +----------+
示例
如果将NULL 或 0(零)作为start参数值传递给函数,则它将返回NULL字符串。
在此示例中,我们使用STUFF()函数将第二个字符串“defgh”插入到第一个字符串“abc”中,起始位置为NULL 或 0,长度为2。
SELECT STUFF('abc', NULL, 2, 'defgh') AS NEW_STR; SELECT STUFF('abc', 0, 2, 'defgh') AS NEW_STR;
输出
以下是上述查询的输出:
+----------+ | NEW_STR | +----------+ | NULL | +----------+
示例
如果将-1(负值)作为length参数值传递给函数,则STUFF()函数将返回NULL字符串。
在此程序中,我们使用 SQL STUFF()函数将字符串“point”插入到字符串“Tutorials”中,起始位置为2,长度为-1。
SELECT STUFF('Tutorials', 2, -1, 'point') AS NEW_STR;
输出
执行上述程序后,它将产生以下输出:
+----------+ | NEW_STR | +----------+ | NULL | +----------+
示例
如果length参数值为零,则在起始位置插入,并且不从第一个表达式中删除任何字符。
SELECT STUFF('Tutorials', 2, 0, 'point') AS NEW_STR;
输出
执行上述语句后,它将产生以下输出:
+----------------+ | NEW_STR | +----------------+ | Tpointutorials | +----------------+
示例
如果length参数值长于第一个表达式,则删除到第二个表达式中的最后一个字符。
在下面的示例中,我们使用 SQL STUFF()函数将第二个字符串“point”插入到第一个字符串“Tutorials”中,起始位置为2,长度值长于第一个字符串15。
SELECT STUFF('Tutorials', 2, 15, 'point') AS NEW_STR;
输出
以下是上述查询的输出:
+----------------+ | NEW_STR | +----------------+ | Tpoint | +----------------+
示例
您还可以将列名作为参数传递给 SQL STUFF()函数,以将一列值插入到另一列中。假设我们使用CREATE语句创建了一个名为Customers的表,如下所示:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, FIRST_NAME VARCHAR (20), LAST_NAME VARCHAR(20),s AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2));
让我们使用INSERT语句将一些记录插入到Customers表中,如下所示:
INSERT INTO CUSTOMERS VALUES (1, 'Rohan','Verma', 33, 'Hyderbad', 2100.00 ); INSERT INTO CUSTOMERS VALUES (2, 'Kamlesh','Kumar', 30, 'Lucknow', 2500.00 ); INSERT INTO CUSTOMERS VALUES (3, 'Seeta','Sharma', 23, 'Delhi', 3150.00 );
以下 SQL 查询将一列LAST_NAME的值插入到Customer表的另一列FIRST_NAME中:
SELECT ID, FIRST_NAME,LAST_NAME, STUFF(FIRST_NAME, 2, 4, LAST_NAME) AS NEW_NAME FROM CUSTOMERS;
输出
以下是上述查询的输出:
+----+------------+-------------+-----------+ | ID | FIRST_NAME | LAST_NAME |NEW_NAME | +----+------------+-------------+-----------+ | 1 | Rohan | Verma | RVerma | | 2 | Kamlesh | Kumar | KKumarsh | | 3 | Seeta | Sharma | SSharma | +----+------------+-------------+-----------+