SQL Server(特别是 2008 或 2012)CASE语句是评估所有WHEN条件还是在找到WHEN评估为 true 的子句后退出?如果它确实通过了整个条件集,这是否意味着最后一个条件评估为 true 会覆盖第一个评估为 true 的条件所做的事情?例如:
CASE
WHEN
SELECT CASE WHEN 1+1 = 2 THEN'YES' WHEN 1+1 = 3 THEN 'NO' WHEN 1+1 = 2 THEN 'NO' END
结果是“是”,即使最后一个条件应使其评估为“否”。一旦找到第一个 TRUE 条件,它似乎就退出了。有人可以确认是否是这种情况。
这是标准的 SQL 行为:
ELSE
NULL