【发布时间】:2021-04-08 11:31:33
【问题描述】:
我有一个关于 SQL Case 块中的布尔表达式的问题。我正在使用 Oracle 数据库。 列名将由在每个案例块末尾声明的别名创建。
有没有办法减少这个 SQL Case 代码示例?
【问题讨论】:
-
您需要仔细检查
CASE表达式中的条件。CASE表达式执行逻辑短路,即它们在满足第一个条件时停止处理。在您的情况下,您的第二个和第三个条件是第一个条件的子集,因此实际上永远不会达到它们。此外,您的第二个条件是第三个条件的子集,因此即使您交换条件以首先执行最具选择性的条件(按照惯例),您的第二个条件也永远不会达到!