2014-01-07 115 views
0

我有臺這樣更新部分

ID Value 
112 x 
113 y 
114 z 
115 e 

,我想在年底更新與「X」號電池,以便輸出更新後的值應該是「112X」 怎麼辦那?

回答

2

因此,您需要VARCHAR類型數據類型的ID列。所以,你可以通過

UPDATE Table SET ID = CAST(ID AS VARCHAR(20)) + Value 

否則更新它,你可以用VARCHAR數據類型和更新的,像下面添加新列

UPDATE Table SET NewCol = CAST(ID AS VARCHAR(20)) + Value 
+0

值意味着什麼IM權的身份證號碼後,把正確的? – user3073987

+1

Value實際上是您在問題中提到的列名稱。您還可以將靜態值替換爲列名稱。 –

+0

不,我不想做任何事情值, 我只需要更新ID與鍵輸出更新應該是112CE 我想添加一些鍵到ID值的結尾 – user3073987

1

你有沒有嘗試這個辦法:

Update tablename set ID = CAST(ID AS VARCHAR(20)) + Value 
0

如果ID列的數據類型爲INT,無法使用Varchar數據類型進行更新。

UPDATE SET表ID = CAST(ID AS VARCHAR(20))+值

會不會作品。

我suggession是

與varchar數據類型創建新的列然後應用

修改表標籤添加Nwcol VARCHAR(100)

UPDATE表SET NEWCOL = CAST(ID AS VARCHAR(20 ))+ Value

然後用舊名稱重命名col

sp_rename 'table.new_column', 'old_column', '列'

它完成。

0

目前其他答案建議

UPDATE Table SET ID = CAST(ID AS VARCHAR(20)) + Value 
FROM <table> 

這不是一個很好的答案,除非ID是類型char(X)的。 ID列很可能是一個整數,這會導致轉換錯誤。

如果ID已經是一個varchar(X),無鑄造是必要的,所有你需要做的是:

UPDATE Table SET ID = ID + Value 
FROM <table> 

假設ID是一個整數。你可以改變列,所以它可以包含一個varchar。這可能會導致問題,如果ID是autoincremential和您當前使用此列的其他任何地方。使用varchar作爲ID列不是很好的做法。我不建議這樣做。

但是,爲什麼要將ID與varchar值結合?這些值應該在不同的列中。相反,你可以做的這四點建議1

- 創建包含組合

CREATE VIEW v_test as 
SELECT ID, Value, CAST(ID AS VARCHAR(10)) + Value as CID FROM <table> 

視圖 - 創建包含組合

ALTER table <table> ADD cID as CAST(ID AS VARCHAR(10)) + Value 

計算列 - 創建包含組合計算列有可能的索引。持久計算列允許索引。

ALTER table <table> ADD cID as CAST(ID AS VARCHAR(10)) + Value PERSISTED 

-display在價值選擇(這是我認爲你需要)

SELECT CAST(ID AS VARCHAR(10)) + Value as DisplayID 
FROM table