SQLSERVER的排序問題結(jié)果不是想要的

同一個(gè)查詢的結(jié)果集為什麼有時(shí)候是按他想要的順序排列,有時(shí)候又不是,接下來將為你詳細(xì)解答,感興趣的你可以參考下哈,希望對(duì)你有所幫助

在論壇里經(jīng)常有人問這樣的問題

同一個(gè)查詢的結(jié)果集為什麼有時(shí)候是按他想要的順序排列,有時(shí)候又不是,或者是在SQL2000里是這個(gè)順序,到了SQL2005/2008又是那個(gè)順序?

其實(shí),只要語句里沒有指定“order by”,sqlserver并不會(huì)按照順序返回的。有可能你的表里有一個(gè)字段已經(jīng)建立了索引

你想結(jié)果集按照那個(gè)建立了索引的字段排序,那么你不指定“order by”是沒有問題的,因?yàn)楸淼拇鎯?chǔ)順序就是按照那個(gè)字段的順序排好序了,所以可以不指定“order by”,但是如果你沒有在想排序的那個(gè)字段建立索引,或者在SQL2000里建立了索引,而在SQL2005/2008里沒有建立索引,那么就要明確地用“order by”指定。如果你沒有指定,哪怕一模一樣的查詢,

結(jié)果集順序這一次和上一次不一樣是很正常的。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享
站長的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員