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 语句替换部分数字不是全部的主要内容,如果未能解决你的问题,请参考以下文章