2017-04-18 89 views
0

我有一个ComputerNo列的学生表。每个单元格中都有一个特殊字符“C”。我需要在C.Ex。之后替换所有的字符。 278287C100→278287C。我的表中共有300000多个数据。请帮助我一个更新查询。提前致谢。如何根据SQL中的字符替换右侧值?

278287C0 
1671755C1 
1671841C2 
1671810C3 
1671779C4 
160771C5 
256050C6 
275222C7 
1625345C8 
1617362C9 
+0

的可能的复制[散装SQL-服务器替换](http://stackoverflow.com/questions/ 21877521/bulk-replace-in-sql-server) –

+0

@sebu:如果像'1254C525C54'这样的数据应该是什么结果? –

回答

1

我想你可以尝试这样的事情(做测试 - 并使用交易 - 前申请生产ENV结果):

UPDATE TABLE SET FIELD = SUBSTRING( FIELD, 1, CHARINDEX('C', FIELD)); 
+0

谢谢!请考虑我的问题作为一个有用的问题。 – sebu

1

你好,请尝试以下代码

Update your_table set your_column=SUBSTRING(your_column,1,CHARINDEX('C',your_column)) 

我希望这会有所帮助。

1

使用下面的更新语句:

UPDATE Student SET 
ComputerNo= CASE ISNULL(ComputerNo,'') 
      WHEN '' THEN ComputerNo 
      ELSE LEFT(ComputerNo,LEN(ComputerNo) - CHARINDEX('C',REVERSE(ComputerNo)) + 1) 
      END 
+0

谢谢!请考虑我的问题作为一个有用的问题。 – sebu

1

另一种选择是使用LEFT功能

UPDATE TABLE SET FIELD = LEFT(FIELD,CHARINDEX('C', FIELD)); 
+0

谢谢!请考虑我的问题作为一个有用的问题。 – sebu

+0

是 SELECT LEFT('278287C0',CHARINDEX('C','278287C0')); Reslt好的,谢谢 – sebu