不可达的CASE子句
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
当搜索到的 CASE 表达式 包含不可达的 WHEN
或 ELSE
子句时,我们可以删除它们。
使用 Settings.transformPatternsUnreachableCaseClauses
,可以实现以下转换
-- With Settings.transformPatternsUnreachableCaseClauses active, this: SELECT CASE WHEN a = b THEN 1 WHEN TRUE THEN 2 WHEN c = d THEN 3 END, CASE WHEN a = b THEN 1 WHEN FALSE THEN 2 WHEN c = d THEN 3 END FROM tab; -- ... is transformed into the equivalent expression: SELECT CASE WHEN a = b THEN 1 ELSE 2 END, CASE WHEN a = b THEN 1 WHEN c = d THEN 3 END FROM tab;
一个更微妙的不可达 WHEN
子句是一个已经被列出的子句,与 THEN
子句无关。虽然删除它是一个正确的转换,但重复很可能是由于拼写错误。
-- With Settings.transformPatternsUnreachableCaseClauses active, this: SELECT CASE WHEN a = b THEN 1 WHEN c = d THEN 2 WHEN a = b THEN 3 END FROM tab; -- ... is transformed into the equivalent expression: SELECT CASE WHEN a = b THEN 1 WHEN c = d THEN 2 END FROM tab;
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的反馈!