日期:2014-05-16  浏览次数:20391 次

关于order by 查询的问题

?

今天在执行一条查询语句的使用发生了这样一件事:

?

select top 3 * from ta_hr_assscore where ?ta_hr_asstMouth like '%2012-05月%'

?

用这条sql语句查询出的数据是正确的:(从168条开始)

?

?

Id

168 0008595195 045 赵左晨? 108.0? 信息 ??2012-05-01 16:39:01 2012-05月??员工级 刘培

169 0005855207 047 唐琼 ? ?46.0? ?信息 ? 2012-06-11 14:29:48 2012-05月 ?员工级 刘培

170 0005872310 093 贾辉辉? 76.0? 信息? 2012-06-11 14:30:01 2012-05月? 员工级 刘培

?

?

——————————————————————————————————————————————————————

select top 3 * from ta_hr_assscore where ?ta_hr_asstMouth like '%2012-05月%' order by ta_hr_asstMouth desc

?

但是 当我加上 order by时,神奇了(第168条明明是2012-05月的数据,但是这样就查不出来了!):
171 0005872310 093 李四 ? ??76.0 信息 2012-06-11 14:30:04 2012-05月 员工级 刘培
170 0005872310 093 贾辉辉 ??76.0 信息 2012-06-11 14:30:01 2012-05月 员工级 刘培
169 0005855207 047 唐琼 ? ? 46.0 信息 2012-06-11 14:29:48 2012-05月 员工级 刘培


---------------------------------------------------------
这是什么情况啊?纠结。。。。。。。。。。 各位大侠看看!!!!!



?

1 楼 kidding87 2012-06-12  
 top 3 * 

你这里都限制了只取前三个
2 楼 猫尾摆摆 2012-06-12  
你多取几条,168就出来了,你用ta_hr_asstMouth做的排序,又不是ID做排序,168不一定排前面的