超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

如何解決ACCESS中select TOP語(yǔ)句返回全部記錄問(wèn)題?

admin
2012年2月12日 1:3 本文熱度 2790
我一直以為access的sql語(yǔ)句與sql server差不多,當(dāng)時(shí)也使用 select top n在access測(cè)試過(guò),都是成功的,但昨天突然發(fā)現(xiàn)access中有個(gè)問(wèn)題:[br] 如果在查詢top語(yǔ)句的后面使用order by,而且order by字段中有重復(fù)值的話,那么這個(gè)top很可能會(huì)失效,[br]會(huì)返回所有記錄[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中有重復(fù)值,那么很有可能會(huì)顯示出所有的記錄來(lái),此top功能會(huì)失效的[br]但如果createdate中無(wú)重復(fù)值,那么top功能還是有效的[br][br]因此,在access中使用top功能要注意一下order by的字段是否會(huì)有重復(fù)值,如果象createdate是"年-月-日 時(shí):分:秒"的,那基本上問(wèn)題不大的。[br]但為了保險(xiǎn)起見(jiàn),我們也可以采用“加入主鍵”的方式:[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]用主鍵作“不可能重復(fù)”的保障就可以防止此問(wèn)題出現(xiàn)了?。br][br]希望這對(duì)某些朋友有用??![br][br]在網(wǎng)上找到一個(gè)相關(guān)的解釋:[br][hilitecolor=#c0c0c0]jet sql不是 t-sql語(yǔ)句。[br]jet sql 會(huì)返回重復(fù)值,也就是說(shuō),一個(gè)表中如果 order by 的字段都是 0 ,一共有100條記錄,即使你用select top 1 來(lái)返回記錄,也同樣返回100條記錄,因?yàn)?jet db 無(wú)從在這100條記錄里面判斷先后次序,只能返回100條。要解決此問(wèn)題可以在后面加入一個(gè)主鍵字段[/hilitecolor][/p]

該文章在 2012/2/12 1:03:06 編輯過(guò)

全部評(píng)論1

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