如何解決access中SELECTTOP1語句竟然返回多條記錄的問題?

字號:

問題:
    如何解決 SELECT 1語句竟然返回多條記錄的問題?
    SELECT 9 title,id,hit FROM Article WHERE DATEDIFF('h',[ShowDateB],Now())>=0
    可以正確顯示前9條
    SELECT 9 title,id,hit FROM Article WHERE DATEDIFF('h',[ShowDateB],Now())>=0 ORDER BY hit DESC
    就成了全部顯示
    ???
    只有4個值.很多是0
    是不是這樣不足九個就會全取出?
    怎么解決呢??
    在SQL Server就沒有這種問題阿
    回答:
    再說一遍,JET SQL不是 T-SQL語句。
    jet sql 會返回重復值,也就是說,一個表中如果 ORDER BY 的字段都是 0 ,一共有100條記錄,即使你用SELECT 1 來返回記錄,也同樣返回100條記錄,因為 JET DB 無從在這100條記錄里面判斷先后次序,只能返回100條。要解決此問題可以建立一個自動編號字段(id),然后用
    select top 1 a,id from tablename order by a,id