关于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
关于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
很赞哦! ()
- 上一篇: 我们是否还一定应该使用存储过程(三)
- 下一篇: 如何在sqlserver中获取表的所有列信息