带有 Select Inside 的案例的 SQL 更新语句

Sta*_*hil 3 sql t-sql sql-server

我想运行一个选择列的最小值和最大值的批量更新语句。问题是有多个具有空值的列。如果NULL那时我想MinValue0.

我有以下声明,但我遇到了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)

我错过了什么?

Joh*_*Woo 6

这个怎么样?

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)