是的,case语句的顺序 做 的事情。第一个匹配行将是返回的行。
因此,此语句:
(CASE WHEN phone = '(202) 555-5555' AND last_name = 'Smith' and first_name = 'John' THEN 1
WHEN phone = '(202) 555-5555' AND last_name = 'Smith' THEN 2
WHEN phone = '(202) 555-5555' THEN 3
END)
可以返回1、2或3(或NULL
)。以下内容将始终返回3(或NULL
),因为将永远不会处理最后两个条件:
(CASE WHEN phone = '(202) 555-5555' THEN 3
WHEN phone = '(202) 555-5555' AND last_name = 'Smith' THEN 2
WHEN phone = '(202) 555-5555' AND last_name = 'Smith' and first_name = 'John' THEN 1
END)