2017-04-18 83 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

相關問題