diff --git a/src/main/java/com/alibaba/druid/sql/visitor/functions/If.java b/src/main/java/com/alibaba/druid/sql/visitor/functions/If.java index 243f7ca1b5..a2d1f9bc8c 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/functions/If.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/functions/If.java @@ -38,7 +38,10 @@ public class If implements Function { SQLExpr condition = parameters.get(0); condition.accept(visitor); Object itemValue = condition.getAttributes().get(EVAL_VALUE); - if (Boolean.TRUE == itemValue || (itemValue != null && !SQLEvalVisitorUtils.eq(itemValue, 0))) { + if (itemValue == null) { + return null; + } + if (Boolean.TRUE == itemValue || !SQLEvalVisitorUtils.eq(itemValue, 0)) { SQLExpr trueExpr = parameters.get(1); trueExpr.accept(visitor); return trueExpr.getAttributes().get(EVAL_VALUE);