count(1),count(*),count(列)的區別

suifeng2316發表於2011-11-02
公司招聘java程式設計師出的一道sql題目:
select count(*) from xxx與 select count(列) from xxx有什麼區別?

應該再加上select count(1) from xxx?

本人理解count(*)和count(1)無區別,都是統計所有行的
據說在8i之前有區別,但是本人沒有接觸過8i的版本,8i之前的東西對我來說只是個傳說,不理也罷。當然如果表xxx有索引,並且索引列非空,那麼可以走索引。
對於索引列存在為空的記錄,當然加上列is not null條件,也可以走索引,如果真的有空記錄,那麼加了條件結果是不同的。

count(col)就是按這個col列統計了,如果列有索引,不管col是否為空,都能走索引,只是統計的結果是:col列不為空的記錄


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23073818/viewspace-710080/,如需轉載,請註明出處,否則將追究法律責任。

相關文章