今天使用order by 的时候发现一个奇怪的问题。
SELECT * FROM APP_YQ_CUSTOMER where 1=1 AND YQ_IMPORTDATE >= TO_DATE('2009-01-25','yyyy-mm-dd') ORDER BY yq_bankcode
这个sql 语句查询出来的结果每次排序都不一样。
难道是没写排序方式? order by 默认的排序方式应该是升序。
经过排查发现 yq_bankcode字段不是唯一的,因此当值yq_bankcode相同是可能会存在顺序不固定的问题。
但是又必须按照yq_bankcode排序,
修改sql 语句如下
SELECT * FROM APP_YQ_CUSTOMER where 1=1 AND YQ_IMPORTDATE >= TO_DATE('2009-01-25','yyyy-mm-dd') ORDER BY yq_bankcode,yq_idcard.
yq_idcard 是有唯一约束的列。
至此问题解决。
order by
最新推荐文章于 2022-09-07 18:04:59 发布