我正在尝试执行此查询,它在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();
}
任何帮助,请
答案 0 :(得分:2)
您收到此错误,因为'[Under 18]'
不是有效的别名
要解决您的问题,您必须使用正确的别名,如果您想在名称中使用空格,那么它应该是一个字符串,例如AS result
,那么您必须使用两个之间的别名``而不喜欢这个
AS `Under 18`