日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

如何解決ACCESS中select TOP語句返回全部記錄問題?

admin
2012年2月12日 1:3 本文熱度 2659
我一直以為access的sql語句與sql server差不多,當時也使用 select top n在access測試過,都是成功的,但昨天突然發現access中有個問題:[br] 如果在查詢top語句的后面使用order by,而且order by字段中有重復值的話,那么這個top很可能會失效,[br]會返回所有記錄[br]比如:[br]
[img]http://www.cnblogs.com/images/outliningindicators/none.gif[/img][color=#000000] [/color][color=#0000ff]select[/color][color=#000000] [/color][color=#0000ff]top[/color][color=#000000] [/color][color=#800000][b]5[/b][/color][color=#000000] [/color][color=#0000ff]from[/color][color=#000000] news [/color][color=#0000ff]order[/color][color=#000000] [/color][color=#0000ff]by[/color][color=#000000] createdate[/color]
[p]如果createdate中有重復值,那么很有可能會顯示出所有的記錄來,此top功能會失效的[br]但如果createdate中無重復值,那么top功能還是有效的[br][br]因此,在access中使用top功能要注意一下order by的字段是否會有重復值,如果象createdate是"年-月-日 時:分:秒"的,那基本上問題不大的。[br]但為了保險起見,我們也可以采用“加入主鍵”的方式:[br][/p]
[img]http://www.cnblogs.com/images/outliningindicators/none.gif[/img][color=#000000] [/color][color=#0000ff]select[/color][color=#000000] [/color][color=#0000ff]top[/color][color=#000000] [/color][color=#800000][b]5[/b][/color][color=#000000] [/color][color=#0000ff]from[/color][color=#000000] news [/color][color=#0000ff]order[/color][color=#000000] [/color][color=#0000ff]by[/color][color=#000000] createdate [/color][color=#0000ff]desc[/color][color=#000000],id [/color][color=#0000ff]desc[/color]
[p][br]用主鍵作“不可能重復”的保障就可以防止此問題出現了!![br][br]希望這對某些朋友有用!![br][br]在網上找到一個相關的解釋:[br][hilitecolor=#c0c0c0]jet sql不是 t-sql語句。[br]jet sql 會返回重復值,也就是說,一個表中如果 order by 的字段都是 0 ,一共有100條記錄,即使你用select top 1 來返回記錄,也同樣返回100條記錄,因為 jet db 無從在這100條記錄里面判斷先后次序,只能返回100條。要解決此問題可以在后面加入一個主鍵字段[/hilitecolor][/p]

該文章在 2012/2/12 1:03:06 編輯過

全部評論1

admin
2012年2月12日 1:4
strSQL="SELECT TOP 5 * FROM myarti WHERE issubfile=1 ORDER BY hits DESC" 如上語句,執行后查詢的結果是6條 strSQL="SELECT TOP 4 * FROM myarti WHERE issubfile=1 ORDER BY hits DESC" 把5該成4,,執行后查詢的結果是4條 這是sql轉成access后出現的問題,在sql server中沒有這樣的問題,這是怎么回事??? 答:你的記錄集的HITS字段中含有相同的記錄, 改為select top 5 * from myarti where issubfile=1 order by hits desc,id desc 其中ID為表主鍵! 解釋:如果在查詢TOP語句的后面使用Orderby,而且Order by字段中有重復值的話,那么這個TOP很可能會失效, 會返回所有記錄 比如: select top 5 from News order by createDate 如果createDate中有重復值,那么很有可能會顯示出所有的記錄來,此TOP功能會失效的 但如果createDate中無重復值,那么TOP功能還是有效的 因此,在ACCESS中使用TOP功能要注意一下orderby的字段是否會有重復值,如果象createDate是"年-月-日時:分:秒"的,那基本上問題不大的。 但為了保險起見,我們也可以采用"加入主鍵"的方式: select top 5 from News order by createDatedesc,id desc 用主鍵作"不可能重復"的保障就可以防止此問題出現了!!
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 日本中文字幕有码在线播放 | 欧美视频在线第12页 | 成人午夜视频在线视频 | 欧美yw精品日本国产精品 | 国产欧美日韩精品高清二区综合区 | 日本欧美午夜三 | 国产成年无 | 国产男女免费完整视频 | 美国特黄三级完整在线电 | 中文字幕免费高清电视剧网站 | 国产一级特黄高清在线大片 | 欧美日韩一区免费 | 亚洲成a人片在线观看www | 日日插人人插天天插 | 欧美激情中文字幕综合一区 | 亚洲欧洲国产1区二区 | 91看片淫黄大片在看 | 婷庭九月天综合水蜜桃 | 最好看的日本电影免费 | 国产成年女人特黄特色大片免 | 中文字幕无线码一区2025青青 | 日本高清中文字幕在线观穿线视频 | 在线日韩欧美视频一区二区 | 最好免费观看高清视频大全 | 国产超级va在线播放 | 国产在线拍小情侣国产拍拍偷 | 国产午夜福利 | 国产精品精品国 | 国产乱码日产精品bd | 亚洲精品911永久在线观看 | 国产精品成aⅴ人片在线观看 | 亚洲无线观看国产高 | 国产素人视频在线播放 | 国产性色 | 中文字幕在线播放 | 国产欧美精品区一区二区三区 | 国产偷拍盗摄一区二区 | 日本免费人成视频在线观看 | 亚洲国产一| 日韩欧国产精 | 精品一区二区三卡四卡网站 |