Я хочу запустить инструкцию массового обновления, которая выбирает min и max столбца. Проблема в том, что существует несколько столбцов с нулевыми значениями. Если NULL
, то я хочу установить MinValue
на 0
.Заявление об обновлении SQL с футляром с выбором внутри
Я следующее заявление, но я получаю сообщение об ошибке с SELECT
и ELSE
:
UPDATE Table1 SET MaxValue = (
SELECT MAX(column1) FROM Table2),
MinValue = (CASE
WHEN SELECT MIN(column1) FROM Table2 <> NULL
THEN SELECT MIN(column1) FROM Table2
ELSE '0'
END)
Что мне не хватает?
Вы не можете сравнить с NULL таким образом, и я уверен, что MIN будет игнорировать NULL, если нет других параметров ... не причина вашей ошибки, но у вас будут проблемы. CASE спроектирован так, чтобы иметь один и тот же тип данных, поэтому, превратив 0 в строку, вы также можете повредить себе. – Ben
Имеет ли таблица 1 какое-либо отношение к таблице2? – Mike
Вы пытались помещать круглые скобки вокруг подзапросов в следующем примере: 'WHEN (SELECT MIN (column1) FROM Table2) <> NULL' –