powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обновление записи
4 сообщений из 4, страница 1 из 1
Обновление записи
    #33113540
pronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица, её нужно заполнить значениями из другой таблицы, на вход даётся только Ид, можно ли как-то мега по-хитрому обновить? или нада писать что-то типа:
UPDATE table1 SET field1 = ( SELECT field1 FROM table2 WHERE id = Ид), field2 = ( SELECT field2 FROM table2 WHERE id = Ид)...
...
Рейтинг: 0 / 0
Обновление записи
    #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
Обновление записи
    #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
Обновление записи
    #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
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обновление записи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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