今天用Access做sql查詢的時(shí)候出現(xiàn)了比較奇怪的問(wèn)題:用:
select top 10 * from [BBSXP_Threads] where IsDel=0 order by views
卻返回 大于 10 行的記錄,根據(jù)理論應(yīng)該是返回 按 views 排序后的
前10個(gè)記錄。可是在Access中卻顯示大于 10 行的記錄。
原來(lái)Access把按views進(jìn)行排序,當(dāng)views的某些記錄相等時(shí),access所處的位置相同(就像體育比賽中的并列第一),而進(jìn)行排序,Access會(huì)把前10個(gè)位置進(jìn)行排序,而不是排序的前10個(gè)記錄。解決方法:在order
by 后加入 其他唯一值的記錄名。例如: select top 10 * from
[BBSXP_Threads] where IsDel=0 order by views,id
這樣就沒(méi)事了。