Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обновление записи / 4 сообщений из 4, страница 1 из 1
12.06.2005, 12:43
    #33113540
pronin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление записи
Есть таблица, её нужно заполнить значениями из другой таблицы, на вход даётся только Ид, можно ли как-то мега по-хитрому обновить? или нада писать что-то типа:
UPDATE table1 SET field1 = ( SELECT field1 FROM table2 WHERE id = Ид), field2 = ( SELECT field2 FROM table2 WHERE id = Ид)...
...
Рейтинг: 0 / 0
14.06.2005, 12:25
    #33115384
nkulikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление записи
Так пойдет???
Код: plaintext
1.
2.
3.
MERGE INTO TAB1 USING TAB2 ON TAB1.f1 = TAB2.f1
 WHEN MATCHED THEN UPDATE SET c1 = TAB.c1
 WHEN NOT MATCHED THEN INSERT VALUES(f1, c1);
...
Рейтинг: 0 / 0
14.06.2005, 14:50
    #33115772
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление записи
я бы сказал
WHEN MATCHED THEN
UPDATE SET (col2, col3, col4, ....) = (tab2.col2, tab2.col3, tab2.col4, ...)

http://publib.boulder.ibm.com/infocenter/db2help/topic/com.ibm.db2.udb.doc/admin/r0010873.htm
...
Рейтинг: 0 / 0
15.06.2005, 22:53
    #33118419
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление записи
кстати, и конструкции типа

UPDATE table1 SET (field1, field2,...) = ( SELECT field1, field2, ... FROM table2 WHERE id = Ид) WHERE id = Ид

должны работать, хотя это может быть медленнее.

А вот конструкции с CASE наподобие

SET (field1, field2) = CASE WHEN ... THEN (1,1) ELSE (2,2) END

увы, не работают.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обновление записи / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]