浏览 1388 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (15) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-12-28 关键字: order by
关于在ibatis中的sql语句进行按照某字段进行排序的问题,在使用oracle数据库的时候,没什么问题,在使用db2数据库的时候,报错。
SQL0119N SELECT、HAVING 或 ORDER BY 子句中指定的以 "GROUPID"开始的表达式未在
GROUP BY 子句中指定,或者,此表达式在带列函数的SELECT、HAVING 或 ORDER BY
子句中存在,但却未指定 GROUP BY 子句。 SQLSTATE=42803 xml文件:
<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如何写? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间: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 |
|
| 返回顶楼 | |






