Menu

Case When Exception

2008-11-15
2012-12-07
  • Nobody/Anonymous

    Hi.
    Could you please look at the following sql.

    "select (case when a > 0 then b + a else 0 end) p from mytable"

    It throw a parse exception. How can I fixed it?

    Exception in thread "main" net.sf.jsqlparser.JSQLParserException
        at net.sf.jsqlparser.parser.CCJSqlParserManager.parse(CCJSqlParserManager.java:40)
        at net.sf.jsqlparser.TestMain.main(TestMain.java:149)
    Caused by: net.sf.jsqlparser.parser.ParseException: Encountered "case when a > 0 then b +" at line 1, column 9.
    Was expecting one of:
        "(" ...
        "NULL" ...
        "CASE" "WHEN" "NULL" ...
        "CASE" "WHEN" "CASE" ...
        "CASE" "WHEN" "?" ...
        "CASE" "WHEN" "+" ...
        "CASE" "WHEN" "-" ...
        "CASE" "WHEN" "{fn" ...
        "CASE" "WHEN" <S_IDENTIFIER> "." ...
        "CASE" "WHEN" <S_IDENTIFIER> "(" ...
        "CASE" "WHEN" <S_DOUBLE> ...
        "CASE" "WHEN" <S_INTEGER> ...
        "CASE" "WHEN" <S_IDENTIFIER> "*" ...
        "CASE" "WHEN" <S_IDENTIFIER> "/" ...
        "CASE" "WHEN" <S_IDENTIFIER> "+" ...
        "CASE" "WHEN" <S_IDENTIFIER> "-" ...
        "CASE" "WHEN" <S_IDENTIFIER> "NOT" ...
        "CASE" "WHEN" <S_IDENTIFIER> "IN" ...
        "CASE" "WHEN" <S_IDENTIFIER> "BETWEEN" ...
        "CASE" "WHEN" <S_IDENTIFIER> "IS" ...
        "CASE" "WHEN" "NOT" ...
        "CASE" "WHEN" "EXISTS" ...
        "CASE" "WHEN" <S_IDENTIFIER> "LIKE" ...
        "CASE" "WHEN" "ALL" ...
        "CASE" "WHEN" "ANY" ...
        "CASE" "WHEN" "SOME" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "ALL" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "ANY" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "SOME" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "NULL" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "CASE" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "?" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "+" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "-" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "{fn" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_IDENTIFIER> ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_QUOTED_IDENTIFIER> ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" "REPLACE" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_DOUBLE> ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "*" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "/" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "+" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "-" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "AND" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "OR" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" "NULL" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" "CASE" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" "?" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" "+" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" "-" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" "{fn" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" <S_IDENTIFIER> "." ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" <S_IDENTIFIER> "(" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" <S_DOUBLE> ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" <S_INTEGER> ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" <S_IDENTIFIER> "WHEN" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" <S_IDENTIFIER> "ELSE" ...
        "CASE" "WHEN" <S_IDENTIFIER> ">" <S_INTEGER> "THEN" <S_IDENTIFIER> "END" ...
        "?" ...
        "+" ...
        "-" ...
        "{fn" ...
        <S_IDENTIFIER> ...
        <S_QUOTED_IDENTIFIER> ...
        "REPLACE" ...
        <S_DOUBLE> ...
        <S_INTEGER> ...
        <S_CHAR_LITERAL> ...
        "{d" ...
        "{t" ...
        "{ts" ...
        "SELECT" ...

     
    • Leonardo Francalanci

      Please try 0.5.0.

       

Log in to post a comment.