解決SELECTTOP1語句返回多條記錄

字號(hào):

問題:
    如何解決 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個(gè)值.很多是0
    是不是這樣不足九個(gè)就會(huì)全取出?
    怎么解決呢???
    在SQL Server就沒有這種問題阿
    回答:
    再說一遍,JET SQL不是 T-SQL語句。
    jet sql 會(huì)返回重復(fù)值,也就是說,一個(gè)表中如果 ORDER BY 的字段都是 0 ,一共有100條記錄,即使你用SELECT 1 來返回記錄,也同樣返回100條記錄,因?yàn)?JET DB 無從在這100條記錄里面判斷先后次序,只能返回100條。要解決此問題可以建立一個(gè)自動(dòng)編號(hào)字段(id),然后用
    select top 1 a,id from tablename order by a,id