Tutorialsteacher

关注我们

文章
  • C#
  • C# 面向对象编程
  • ASP.NET Core
  • ASP.NET MVC
  • LINQ
  • 控制反转 (IoC)
  • Web API
  • JavaScript
  • TypeScript
  • jQuery
  • Angular 11
  • Node.js
  • D3.js
  • Sass
  • Python
  • Go lang
  • HTTPS (SSL)
  • 正则表达式
  • SQL
  • SQL Server
  • PostgreSQL
  • MongoDB
  • SQL Server - 入门
  • 安装 SQL Server
  • SQL Server Management Studio
  • SQL Server - Windows 身份验证
  • SQL Server - 身份验证
  • SQL Server - 创建新用户
  • SQL Server - 授予/撤销用户权限
  • SQL Server - 数据类型
  • SQL Server - 命名约定
  • SQL Server - 创建数据库
  • SQL Server - 创建表
  • 添加列
  • 标识列
  • 重命名列、表
  • 删除列
  • SQL Server - 架构
  • SQL Server - 表关系
  • SQL Server - 主键
  • 修改/删除主键
  • SQL Server - 外键
  • 修改/删除外键
  • SQL Server - 检查约束
  • SQL Server - 唯一约束
  • SQL Server - 视图
  • 修改/删除视图
  • SQL Server - 函数
  • SQL Server - 存储过程
  • 存储过程参数
  • SQL Server - 索引
  • 非聚集索引
  • 修改/删除索引
  • SQL Server - 触发器
  • DDL 触发器
  • LOGON 触发器
  • 启用/禁用触发器
  • 修改/删除触发器
  • SQL Server - 序列
  • SQL Server - 同义词
  • SQL Server - IF ELSE 语句
  • SQL Server - 循环
  • SQL Server - 插入数据
  • SQL Server - 更新数据
  • SQL Server - 删除数据
  • SQL Server - SELECT 查询
  • WHERE 子句
  • GROUP BY 子句
  • HAVING 子句
  • ORDER BY 子句
  • SQL Server - 内连接
  • 左连接
  • 右连接
  • 全连接
  • 自连接
  • 动态 SQL
  • 内置函数
Entity Framework Extensions - 提升 EF Core 9
  批量插入
  批量删除
  批量更新
  批量合并

SQL Server STUFF 函数:在字符串中插入子字符串

在 SQL Server 中,STUFF() 函数将一个字符串插入到另一个字符串中。它从第一个字符串的指定位置开始删除指定数量的字符,并从该位置插入给定的第二个字符串。

STUFF(string_expression, start, length, replacementString)

参数

  1. string_expression:字符数据字符串。它可以是常量、变量或字符或二进制数据的表列。
  2. Start:一个整数,指定删除和插入的起始位置。如果 start 为负数、零或比第一个表达式长,则 STUFF() 函数返回 NULL。Start 也可以是 bigint 类型。
  3. Length:要从第一个字符串中删除的字符数。它是一个整数。
  4. replacementString:应在 string_expression 中替换的子字符串。

返回值

如果 string_expression 是字符数据类型,则返回字符数据。

  • 如果 length 为负数,则返回 NULL。
  • 如果 length 比第一个字符串或 string_expression 长,则整个 string_expression 都将被删除。
  • 如果 length 为零,则函数将在 string_expression 的开头插入 replacementString。不从 string_expression 中删除任何字符。

示例 1

在下面的简单示例中,给定字符串 'abcdefgh' 从第三个字符开始,长度为六个字符,被 'xxxx' 替换。

示例:STUFF()
SELECT STUFF('abcdefgh',3,6,'xxxx') AS Result;

示例 2

在下面的示例中,'nice' 被删除并替换为 'good'。

示例:STUFF()
SELECT STUFF('Have a nice day!',8,4,'good') AS Result

示例 3

在下面的示例中,演示了不同的 start 和 length 参数。

示例:STUFF()
SELECT STUFF('Have a nice day!',0, 4, 'good') AS Result1, 
STUFF('Have a nice day!', 1, 4, 'good') AS Result2,  
STUFF('Have a nice day!',6, 2, 'good') AS Result3;

示例 4

在下面的示例中,STUFF() 函数用于屏蔽敏感数据,例如护照号码。护照号码的前 5 个字符被 'xxxxx' 替换,如以下查询所示。

示例:STUFF()
SELECT EmployeeID, STUFF(PassportNumber, 1, 5, 'xxxxx') FROM EmployeeDetails

示例 5

在此示例中,length 是一个负整数。返回值为 NULL。

示例:STUFF()
SELECT STUFF('Have a nice day!',1,-4,'good') AS Result;

示例 6

在下面的示例中,replacementString 是一个空字符串。因此,从第八个位置开始,长度为 4 的 string_expression 被替换为空格,如结果所示。

示例:STUFF()
SELECT STUFF('Have a nice day!',8,4,'') AS Result;

示例 7

在此示例中,STUFF() 函数用于将日期从 MMDDYYYY 格式格式化为 MM/DD/YYYY 格式。使用两个 STUFF() 函数插入 /。一个在 DD 和 MM 之间,另一个在 MM 和 YYYY 之间,如下所示。

示例:STUFF()
SELECT STUFF(STUFF('01022022', 3,0,'/'),6,0,'/') AS Result;
TUTORIALSTEACHER.COM

TutorialsTeacher.com 是您权威的技术教程来源,旨在通过循序渐进的方法,指导您掌握各种网络和其他技术。

我们的内容旨在帮助所有水平的学习者轻松快速地学习技术。访问此平台即表示您已阅读并同意遵守我们的使用条款和隐私政策,这些条款和政策旨在保护您的体验和隐私权。

[email protected]

关于我们使用条款隐私政策
copywrite-symbol

2024 TutorialsTeacher.com. (v 1.2) 版权所有。