【问题标题】:expecting IDENT, found ''[Under 18]''期待 IDENT,发现 ''[Under 18]''
【发布时间】:2017-11-19 11:05:34
【问题描述】:

我正在尝试执行此查询,它在 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();
}

请帮忙

【问题讨论】:

  • 我不知道 MySQL 在这方面是否相同,但是在 SQL Server 中,您不会将方括号括在单引号中:AS [Under 18], SUM... 会很好

标签: java mysql sql


【解决方案1】:

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

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

AS `Under 18`

【讨论】:

  • 这是workk有一种方法可以用java显示colonn的名称
  • 我想把这个18岁以下的人恢复成variab
  • 你是什么意思 @user3529601 我不明白你
猜你喜欢
  • 2021-06-16
  • 2011-12-21
  • 2013-10-31
  • 2019-08-12
  • 1970-01-01
  • 2015-03-18
  • 2019-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多