期待IDENT,发现''[18岁以下]'

时间:2017-06-16 15:41:25

标签: java mysql sql

我正在尝试执行此查询,它在phpMyAdmin中工作,但在我的方法中却没有给我这个例外

expecting IDENT, found ''[Under 18]'': line 1:53: expecting IDENT, found ''[Under 18]''

这是我的方法:

public List<Object[]> getTranche() {
    List<Object[]> list;

    Query req = em.createQuery("SELECT SUM(CASE WHEN age < 18 THEN 1 ELSE 0 END) AS '[Under 18]', SUM(CASE WHEN age BETWEEN 18 AND 24 THEN 1 ELSE 0 END) AS '[18-24]', SUM(CASE WHEN age BETWEEN 25 AND 34 THEN 1 ELSE 0 END) AS '[25-34]' FROM Contrat ");

    return (List<Object[]>) req.getResultList();
}

任何帮助,请

1 个答案:

答案 0 :(得分:2)

您收到此错误,因为'[Under 18]' 不是有效的别名

要解决您的问题,您必须使用正确的别名,如果您想在名称中使用空格,那么它应该是一个字符串,例如AS result,那么您必须使用两个之间的别名``而不喜欢这个

AS `Under 18`