我有这样的表
ID Value
112 x
113 y
114 z
115 e
我希望最后用'x'更新ID单元格,因此输出更新值应为'112x' 怎么做?
答案 0 :(得分:2)
为此,您需要VARCHAR数据类型的ID列。所以你可以通过
更新它UPDATE Table SET ID = CAST(ID AS VARCHAR(20)) + Value
否则,您可以使用VARCHAR数据类型添加新列,并在下面进行更新
UPDATE Table SET NewCol = CAST(ID AS VARCHAR(20)) + Value
答案 1 :(得分:1)
你试试这个:
Update tablename set ID = CAST(ID AS VARCHAR(20)) + Value
答案 2 :(得分:0)
如果ID列的数据类型为INT,则无法使用Varchar数据类型进行更新。
UPDATE表SET ID = CAST(ID AS VARCHAR(20))+ Value
不行。
我的建议是
使用varchar数据类型创建新列,然后应用
更改表格选项卡添加Nwcol varchar(100)
UPDATE表设置NewCol = CAST(ID AS VARCHAR(20))+值
然后使用旧名称
重命名colsp_rename'table.new_column','old_column','Column'
完成了。
答案 3 :(得分: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是自动不重要的,并且您当前正在使用此列的其他任何地方,这可能会导致问题。使用varchar作为ID列不是好习惯。我不推荐这个。
但是为什么要将ID与varchar值组合在一起?这些值应该在不同的列中。相反,你可以做这4个建议中的一个
- 创建包含组合
的视图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
- 显示选择中的值(这是我假设你需要的)
SELECT CAST(ID AS VARCHAR(10)) + Value as DisplayID
FROM table