update from select



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)

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

Перечень допустимых функций в SQL-запросе ADO Jet 4.0 (MS Access)
Скалярные функции Transact SQL для выражений (ADP)
Примечание. Сведения в данном разделе
подробнее...
Update SQL на Википедии
Посмотрите статью на википедии про Update SQL
 

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

Имя*

E-mail:*

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