可用版本:开发版 (3.21) | 最新版 (3.20) | 3.19 | 3.18

合并CASE .. WHEN和ELSE子句

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

当被搜索的 CASE 表达式 的最后一个 WHEN 子句返回与 ELSE 子句相同的值时,该 WHEN 子句是多余的。 如果它是唯一的 WHEN 子句,则整个 CASE 表达式都是多余的。

使用 Settings.transformPatternsCaseMergeWhenElse,可以实现以下转换

-- With Settings.transformPatternsCaseMergeWhenElse active, this:
SELECT
  CASE WHEN a = b THEN x WHEN c = d THEN y ELSE y END,
  CASE WHEN a = b THEN x ELSE x END
FROM tab;

-- ... is transformed into the equivalent expression:
SELECT
  CASE WHEN a = b THEN x ELSE y END,
  x
FROM tab;

反馈

您对此页面有任何反馈吗? 我们很乐意倾听!

The jOOQ Logo