您现在的位置是:首页 > SQLServer

SQLServer

关于sql中count写法的探讨

2020-11-08 15:23:57 SQLServer admin
我们在查询表中数据的数量时,有人喜欢用count(*),有人用count(1),还有些朋友会用count(主键),但这几种用法那种会更优一些呢?下面在csdn上面看到的一篇文章,摘抄如下:关于COUNT的写法,大致有以下几种:COUNT(*
我们在查询表中数据的数量时,有人喜欢用count(*),有人用count(1),还有些朋友会用count(主键),但这几种用法那种会更优一些呢?下面在csdn上面看到的一篇文章,摘抄如下:

关于COUNT的写法,大致有以下几种:
COUNT(*)
COUNT(1)
COUNT(主键)
COUNT(列名)

我还是写个小例子:
USETEMPDB
GO
IFOBJECT_ID('TB')ISNOTNULLDROPTABLETB
GO
CREATETABLETB(COL1INT,COL2INT,COL3INT,COL4INT)
GO
CREATECLUSTEREDINDEXINX_TB_COL1_COL2ONTB(COL1,COL2)
GO
CREATEINDEXINX_TB_COL3ONTB(COL3)
GO
INSERTINTOTB
SELECTT1.number,T2.number,CASEWHENT1.number%3=0THENNULLELSET1.numberEND,T1.NUMBER+T2.number
FROMMASTER..spt_valuesT1
INNERJOINMASTER..spt_valuesT2ONT1.number=T2.number-1
GO
SELECTCOUNT(*)
FROMTB

SELECTCOUNT(1)
FROMTB

SELECTCOUNT(COL1)
FROMTB

SELECTCOUNT(COL2)
FROMTB

SELECTCOUNT(COL3)
FROMTB

SELECTCOUNT(COL4)
FROMTB

SELECTCOUNT(DISTINCTCOL3)
FROMTB

SELECTCOUNT(1),
COUNT(COL3),
COUNT(DISTINCTCOL3),
COUNT(COL4),
COUNT(DISTINCTCOL4)
FROMTB