我对SQL Server 2008有一个小问题,并且有一个游戏专栏
该列例如:
xx984916516518
xx191981981989
,其中
xx = 45 (for example)
有什么方法可以更新45到30(例子)
如果可以的话,我可以这样做:
xxyy1581zz9878
xx = 45
yy = 45
zz = 45
我也想要更新45。
我可以用:
UPDATE Table
SET Column = '30301581309878'
WHERE Column = '45451581459878'
但我有超过10,000种这种类型,这需要花费太多时间。
答案 0 :(得分:2)
UPDATE YourTable
SET SomeColumn = '30' + substring(SomeColumn, 3, LEN(SomeColumn - 2))
WHERE SomeColumn like '45%'
答案 1 :(得分:1)
替换功能的示例
DECLARE @String VARCHAR(100) = 'xx9849165zz16518yy'
SELECT REPLACE(REPLACE(REPLACE(@String, 'xx', '45'), 'zz', '45') , 'yy', '45')
<强>结果强>
459849165451651845
如果您想更新表格中的列,可以执行类似这样的操作
UPDATE Table_Name
SET Column_Name = REPLACE(REPLACE(REPLACE(Column_Name, 'xx', '45'), 'zz', '45') , 'yy', '45')
将“30”替换为“45”
UPDATE Table_Name
SET Column_Name = REPLACE(Column_Name, '30', '45')