关于sql查询的问题,请教各位前辈。

2019-01-03 01:08发布

这是一个通用分页库产生的代码,根据图片的注释,如果去掉前面的fundTime排序放到后面是正常,这是为什么呢?

3条回答
神经病院院长
2楼-- · 2019-01-03 01:40

集合是没有顺序的,对于子查询,请移除order by子句,或者 top 100 percent+order by 组合使用

查看更多
3楼-- · 2019-01-03 01:44

试试 ORDER BY fundTime 依然放前面,在 GROUP BY 中加上 fundTime 列名

查看更多
ゆ 、 Hurt°
4楼-- · 2019-01-03 01:54
1 SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY fundTime desc) as row_number,* FROM( A.userID
2 from yw_user_fundlog A LEFT JOIN yw_user B ON A.userID=B.userID where 1=1 AND (B.name LIKE '%440%' OR B.mobile LIKE'%440%') group by A.userID,convert(varchar(10), fundTime,20))t) tt WHERE tt.row_number between 1 and 10

问题解决,只要先分组,然后再排序就好了。

查看更多
登录 后发表回答