如何附加到SQL中的现有记录?

时间:2011-06-10 22:29:39

标签: sql database tsql sql-server-2008

有人可以告诉我如何在SQL中追加?我整天都在试图解决这个问题。这就是我到目前为止所做的:

update table1 
set field1 = field1 + '123456' 
where field2 = '12'

抱歉,我忘了提到我在声明中更新了多个字段。

5 个答案:

答案 0 :(得分:16)

只要field1不为null或者要追加的数据不为空,您的语句就应该有效。

在field1为null的情况下,这样的事情会有所帮助。

update table1 set field1 = ISNULL(field1, '') + '123456' where field2 = '12'

答案 1 :(得分:5)

在Oracle中,字符串连接如下:

field1 = field1 || '12345'

答案 2 :(得分:0)

你的问题有点令人困惑,因为你说追加,但你的例子实际上只是一个集合操作:

update table1 set field1 = '123456', field2 = '' where field2 = '12'

如果你实际附加它将取决于你的数据库,但查找字符串连接以供参考。

update table set field1 = concat(field2, '3456') where field2 = '12'

答案 3 :(得分:0)

以下是varchar连接和整数加法之间的区别,您似乎正在进行varchar连接,您可能需要使用CAST and CONVERT (Transact-SQL)来添加数字

示例1 w /整数:

DECLARE @table1 TABLE(field1 int, field2 int)
INSERT INTO @table1 VALUES (123456, 12)
SELECT 'before' as 'before', * FROM @table1

UPDATE @table1 SET field1 = field1 + 123456 WHERE field2 = 12
SELECT 'after' as 'after', * FROM @table1

示例1结果:

int addition

示例2 w / varchar:

DECLARE @table2 TABLE(field1 varchar(50), field2 varchar(2))
INSERT INTO @table2 VALUES ('123456', '12')
SELECT 'before' as 'before', * FROM @table2

UPDATE @table2 SET field1 = field1 + '123456' WHERE field2 = '12'
SELECT 'after' as 'after', * FROM @table2

示例2结果:

varchar concat

答案 4 :(得分:0)

如果您使用的是MySQL,则查询可以简化为

UPDATE table set field1 = CONCAT('123456', field1) where field2 = '12'