浏览 12574 次
锁定老帖子 主题:关于order by 排序的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (15) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-28
SQL0119N SELECT、HAVING 或 ORDER BY 子句中指定的以 "GROUPID"开始的表达式未在 GROUP BY 子句中指定,或者,此表达式在带列函数的SELECT、HAVING 或 ORDER BY 子句中存在,但却未指定 GROUP BY 子句。 SQLSTATE=42803xml文件: <select id="findAllRoleFunInfoList" parameterClass="com.shunde.admin.sysroleright.domain.SysRoleRight" resultClass="com.shunde.admin.sysroleright.domain.SysRoleRight"> <![CDATA[ select A.FUNCCODE as funcCode,A.FUNCNAME as funcName,A.leaf as leaf,A.ParentCode as parentCode, B.role_id from SYS_FUNINFO A left join SYS_ROLERIGHT B on A.FUNCCODE=B.FUNCCODE and B.role_id=#role_id# order by A.FUNCCODE ]]> </select> 跟踪了一下,问题是,在执行的时候,首先执行了一个select count(*) from SYS_FUNINFO A left join SYS_ROLERIGHT B on A.FUNCCODE=B.FUNCCODE and B.role_id=#role_id# order by A.FUNCCODE 这样的语句,在oracle数据库执行没问题,在db2数据库执行就有问题,是ibatis配置的问题还是其他问题,order by语句在ibatis如何写? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-12-28
ibatis只是一个sqlmap,order by还是按数据库的语法写。
先检查你的sql问题。
|
|
返回顶楼 | |
发表时间:2007-12-28
最简单的方法把sql语句放到db2的客户连接段执行以下,看是否出错
|
|
返回顶楼 | |
发表时间:2008-01-16
呵呵…………谢谢!问题已经解决了,是我们用的分页的问题。在执行SQL之前首先执行select count(*) 统计条数。修改的时候,把代码该成了,不管什么样的sql,把from 后的内容看成一个临时表或者时间。所以出现了在select count(*) from (表A) order by 字段 ,这种语法在db2数据库中是不被支持的!
|
|
返回顶楼 | |
发表时间:2008-01-20
lonely_521 写道 呵呵…………谢谢!问题已经解决了,是我们用的分页的问题。在执行SQL之前首先执行select count(*) 统计条数。修改的时候,把代码该成了,不管什么样的sql,把from 后的内容看成一个临时表或者时间。所以出现了在select count(*) from (表A) order by 字段 ,这种语法在db2数据库中是不被支持的!
那你就把(表A) order by 字段 再作为一个临时表好了,前面再加一个select count(*) from |
|
返回顶楼 | |
发表时间:2008-10-30
count的时候需要order by吗请问?完全不需要。
|
|
返回顶楼 | |