2014-01-07 116 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