我正在尝试使用可能返回null的条件子选择进行更新...
UPDATE
aTable SET
aColumn =
(
SELECT TOP 1
CASE
WHEN bTable.someColumn = 1 THEN someValue1
WHEN bTable.someColumn = 2 THEN someValue2
ELSE someValue3
END
FROM
bTable
WHERE
bTable = @someCriteria
ORDER BY
someSortColumn
) WHERE
aTable.id = @someId;
如果“bTable = @someCriteria”子句导致SELECT没有返回任何结果,它将尝试将NULL插入“aColumn”,在这种情况下为“NOT NULL”列。
问题
在这种情况下,如何仅将“aColumn”保留为空?
非常感谢。
最佳答案
...
aColumn =
ISNULL(
(
SELECT TOP 1
CASE
WHEN bTable.someColumn = 1 THEN someValue1
WHEN bTable.someColumn = 2 THEN someValue2
ELSE someValue3
END
FROM
bTable
WHERE
bTable = @someCriteria
ORDER BY
someSortColumn
), aColumn)
...
关于sql - 用子选择更新-如何处理NULL值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6384360/