SQL REPLACE 语句替换部分数字不是全部

Posted

技术标签:

【中文标题】SQL REPLACE 语句替换部分数字不是全部【英文标题】:SQL REPLACE statement to replace some numbers not all 【发布时间】:2011-10-02 22:44:37 【问题描述】:

我正在尝试使用 T-SQL REPLACE 语句替换 DepartmentID 列下的中间 4 个数字....

我了解更改一组 DepartmentID 数字的简单方法我希望能够更改 DepartmentID 下的所有中间数字

选择替换(部门ID,'000701280918','000799990918')作为部门ID

来自员工

目标选择所有员工,将DepartmentID中的4个中间数字替换为9999:

---4-----4-----4

0007 0128 0918

左边4个字符

右侧 4 个字符

中间4个字符


表:员工

表中的第一列:EmployeeID

列:部门ID

000701280918

000701782662

000702220442

000702118362

000702108487

000702109473

000702033600

000702275707


我将如何写声明

感谢您的帮助

【问题讨论】:

使用子字符串 UPDATE YOURTABLE SET YOURCOLUMN = replace(substring(yourcolumn, 1, 5) + '9999' + substring(9)) (idk 关于“中间数字是,只需使用子字符串位置,我在这种情况下使用 1 到 4 和 9 到结束) 【参考方案1】:

查看stuff 函数:

update  YourTable
set     DepartmentId = stuff(DepartmentId, 5, 4, '9999')

【讨论】:

如何在 DepartmentId 列中的每一行使用它? @user975828 如果您不使用WHERE 子句过滤掉任何行,那么更改将应用​​于所有行。那是不加选择的UPDATE【参考方案2】:
update YourTable
set DepartmentId = left(DepartmentId, 4) + '9999' + right(DepartmentId, 4)

此代码会将 DepartmentId 列设置为之前的值,但会将中间四个数字更改为全九。

【讨论】:

以上是关于SQL REPLACE 语句替换部分数字不是全部的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句replace替换问题

SQL语句replace怎么替换?

sql server replace 函数使用方法

sql 语句操作,修改字段中字符串的一部分

js的replace函数影响光标定位,怎么解决?

如何批量删除excel表格中数字前后的方括号