Обновление результатов выбора - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть таблица caxnode, в которой есть поля node_alias, node_mode, node_id и т. Д.

В некоторых случаях node_alias помечается как "обычный", а также как "логический" для разных node_id.Я хочу изменить записи, для которых одна и та же node_alias помечена как «обычная», а также «логическая», на логическую.т.е. измените «обычный» на «логический», если та же самая запись помечена как «логическая» в таблице и является разделом LDOM.

Это мой рабочий запрос для возврата результатов, которые меня интересуют, чтобы изменить..

select Node_ID, Node_type, Num_of_proc, Node_Alias, Host_ID, Node_mode, Partition_Type
from CAXNODE nd
where (Node_mode = 'VIRTUAL' or Node_mode = 'REGULAR')
and Node_Alias in
    (select nd2.Node_Alias
     from CAXNODE nd2
     where nd2.Node_mode = 'LOGICAL' and Partition_Type = 'LDOM'
    ) ;

Теперь я хочу изменить значения, чтобы установить Node_mode на «LOGICAL»;Partition_Type to 'LDOM', Host_ID to (nd2.Host_ID);Num_of_proc to (nd2.Num_of_proc);

Как я могу сделать это в одном операторе обновления?

1 Ответ

0 голосов
/ 07 апреля 2011

Легко. Удалите SELECT и замените на UPDATE [цель], затем добавьте список изменений SET.

--select Node_ID, Node_type, Num_of_proc, Node_Alias, Host_ID, Node_mode, Partition_Type
UPDATE nd
SET
    Node_mode = 'LOGICAL',
    Partition_Type = 'LDOM',
    Host_ID = nd2.Host_ID,
    Num_of_proc = nd2 Num_of_proc
from CAXNODE nd
where (Node_mode = 'VIRTUAL' or Node_mode = 'REGULAR')
and Node_Alias in
    (select nd2.Node_Alias
     from CAXNODE nd2
     where nd2.Node_mode = 'LOGICAL' and Partition_Type = 'LDOM'
    ) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...