SQL Server更新问题

时间:2013-12-29 22:29:48

标签: sql sql-server tsql sql-update

我对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种这种类型,这需要花费太多时间。

2 个答案:

答案 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')