Example #1
0
 /** Searched CASE expression in executable SQL statement */
 public void execSearchedCaseSql(HplsqlParser.Expr_case_searchedContext ctx) {
   StringBuilder sql = new StringBuilder();
   sql.append("CASE");
   int cnt = ctx.T_WHEN().size();
   for (int i = 0; i < cnt; i++) {
     sql.append(" WHEN ");
     sql.append(evalPop(ctx.bool_expr(i)).toString());
     sql.append(" THEN ");
     sql.append(evalPop(ctx.expr(i)).toString());
   }
   if (ctx.T_ELSE() != null) {
     sql.append(" ELSE ");
     sql.append(evalPop(ctx.expr(cnt)).toString());
   }
   sql.append(" END");
   exec.stackPush(sql);
 }
Example #2
0
 /** Searched CASE expression */
 public void execSearchedCase(HplsqlParser.Expr_case_searchedContext ctx) {
   int cnt = ctx.bool_expr().size();
   boolean found = false;
   for (int i = 0; i < cnt; i++) {
     if (evalPop(ctx.bool_expr(i)).isTrue()) {
       visit(ctx.expr(i));
       found = true;
       break;
     }
   }
   if (!found) {
     if (ctx.T_ELSE() != null) {
       visit(ctx.expr(cnt));
     } else {
       evalNull();
     }
   }
 }