Как добавить к существующей записи в SQL? - PullRequest
10 голосов
/ 11 июня 2011

Может кто-нибудь сказать мне, как добавить в SQL? Я хожу весь день, пытаясь понять это. Это то, что я до сих пор:

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

Извините, я забыл упомянуть, что я обновляю более одного поля в заявлении.

Ответы [ 4 ]

17 голосов
/ 11 июня 2011

Ваше утверждение должно работать до тех пор, пока поле field1 не равно нулю или данные, которые нужно добавить, не равно null.

Что-то подобное может помочь в случае, когда field1 равно нулю.

update table1 set field1 = ISNULL(field1, '') + '123456' where field2 = '12'
5 голосов
/ 11 июня 2011

в Oracle конкатенация строк выглядит следующим образом:

field1 = field1 || '12345'
0 голосов
/ 11 июня 2011

Здесь есть различия между конкатенацией varchar и сложением целых чисел. Похоже, что происходит конкатенация varchar, вам может понадобиться использовать CAST и CONVERT (Transact-SQL) для добавления ваших чисел

пример 1 с целыми числами:

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 с 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

0 голосов
/ 11 июня 2011

Ваш вопрос немного сбивает с толку, потому что вы говорите "добавить", но ваш пример на самом деле является просто операцией сета:

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

, если вы действительно добавляете, это будет зависеть от вашей базы данных, но конкатенация строки поиска для справки.

update table set field1 = concat(field2, '3456') where field2 = '12'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...