SQLServer的top 100 percent用法


sql="select top 30 * from data where title='"&title1&"' order by id desc"
原意是選出符合“where 條件”的記錄集里的“前30條”

但是,對於該SQL語句,由於語句里同時存在where和top語句的,並且where條件列不是合適的索引,程序執行的是全表掃描,首先是查找符合where條件的記錄, 而這里的top限制形同虛設。如果全表是百萬級別以上的數據表,那么就這么一個簡單的判斷,就有可能拖垮數據庫。

所以需要先把符合“where條件”的記錄,用一個子查詢篩選出來,再在篩選結果集里選top30。

因為SQL規則規定,如果子查詢里,有order ...,就必須有TOP,所以就用SELECT TOP 100 PERCENT來限定,top 100 percent是為了保證篩選出所有符合條件的數據條目。

 

原文:https://www.cnblogs.com/ziyeyimeng/articles/2099188.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM