通常在编写JPA规范的查询脚本时,在SELECT子句中,每一个返回项都可以为其指定一个别名,尤其是对于聚合函数,如下所示:
SELECT COUNT(app) count1,app.age FROM App app GROUP BY app.age HAVING count1> 10
其中count1就是用于代表COUNT(app)的别名,使用别名的方式,可以方便在Having子句中引用聚合函数COUNT(app)。
但JPA规范规定,仅仅允许第一层的返回项存在别名,若使用类似于对象创建的方式返回数据,则在其中嵌套的任何返回项都不允许存在别名,如下所示:
错误的写法:
SELECT NEW template.ResultApp(COUNT(app) count1,app.age) FROM App app GROUP BY app.age HAVING count1 > 10
正确写法:
SELECT NEW template.ResultApp(COUNT(app),app.age) FROM App app GROUP BY app.age HAVING COUNT(app) > 10
关于JPA中SELECT子句别名问题
原创
©著作权归作者所有:来自51CTO博客作者种瓜得豆的原创作品,谢绝转载,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
关于LVGL界面切换的问题
LVGL界面切换问题解决
界面切换 线程安全 键值 -
【MySQL】为什么在having子句中可以使用在select子句中定义的别名?
可以在group byorder byhaving子句中使用别名。**不可以在where中使用别名。其他数据库不一定支持此操作。
mysql 数据库 SQL SQL执行顺序 MySQL -
MySQL select子句的作用 select语句的子句有哪些
为了从数据库中查询数据,你需要用SQL语言中使用最多的SELECT语句。我们分别介绍SELECT语句的基础语法、子查询、从多表中查询数据,然后再进行实例解析。一、SELECT语句的基础语法 SELECT语句就像叠加在数据库表上的过滤器,即选择查
MySQL select子句的作用 oracle 数据管理 等值连接 子查询