我正在尝试使用可能返回 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/