Как использовать конструкцию UPDATE FROM SELECT в MSSQL?



Ms sql update from select

Автор Headless задал вопрос в разделе Другие языки и технологии

mssql update from select и получил лучший ответ

Ответ от G0 t0[гуру]
В MSSQL обновить данные на основе выборки из другой таблицы можно несколькими способами. Для вашей задачи с подсчетом голосов подойдет скалярный подзапрос с функцией ISNULL, чтобы избежать значений NULL, если совпадений не найдено:UPDATE miss
SET rate = ISNULL((SELECT COUNT(*) FROM senders WHERE voice = miss.number), 0)В таком подзапросе в списке выборки должно быть только одно значение, а конструкции GROUP BY и ORDER BY действительно не нужны. Однако для больших объемов данных в SQL Server предпочтительнее использовать прямой синтаксис UPDATE FROM с JOIN. Это работает быстрее и надежнее:UPDATE m
SET m.rate = ISNULL(s.cnt, 0)
FROM miss m
LEFT JOIN (
SELECT voice, COUNT(*) AS cnt
FROM senders
GROUP BY voice
) s ON m.number = s.voiceИспользование LEFT JOIN гарантирует, что обновятся все записи таблицы miss, даже если у конкурсантки еще нет голосов в таблице senders, а функция ISNULL подставит ноль вместо пустого значения.

Ответ от Nick[гуру]
только еще isnull можно дописатьUPDATE miss set rate =isnull (( select count(*) from senders wherevoice = miss.number -- voice голос. связана с таблицей miss по номеру конкурсантки),0)

Ответ от - -[гуру]
isnull дописать еще можноUPDATE miss set rate =isnull (( select count(*) from senders wherevoice = miss.number -- voice голос. связана с таблицей miss по номеру конкурсантки),0)

Ответ от ВикиВопрос[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: mssql update from select

запрос в mysql (update)
В MySQL нельзя напрямую делать выборку из той же таблицы, которую вы обновляете, в обычном
подробнее...

access. SELECT. .AS. .
Ключевое слово AS в SQL используется для назначения псевдонимов таблицам и полям. Это стандарт
подробнее...

хочу установить windows 7 с флешки но что-то не идет. при установки windows 7 пишет start booting from USB device
Сообщение start booting from usb device означает, что компьютер пытается начать загрузку с флешки,
подробнее...

Любители английского, скажите в чем разница между MADE OF и MADE FROM?
Разница между made of и made from заключается в степени изменения исходного материала. Made of
подробнее...

В чем разница между make of, make from, и make out of в значение сделано из чего то?
Разница между этими выражениями в оттенках значения и степени изменения материала. Выражение made
подробнее...
Update SQL на Википедии
Посмотрите статью на википедии про Update SQL
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*