Sta*_*hil 3 sql t-sql sql-server
我想运行一个选择列的最小值和最大值的批量更新语句。问题是有多个具有空值的列。如果NULL那时我想MinValue将0.
我有以下声明,但我遇到了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)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
这个怎么样?
UPDATE a
SET a.MaxValue = b.max_val,
a.MinValue = COALESCE(b.min_val, 0)
FROM Table1 a
CROSS JOIN
(
SELECT MAX(column1) max_val,
MIN(column1) min_val
FROM Table2
) b
Run Code Online (Sandbox Code Playgroud)