正确使用SQL Server中的count()函数
来源:互联网 发布:台湾驱动透视源码 编辑:程序博客网 时间:2024/04/30 03:56
目录
- 目录
- count函数的正确使用
- 使用兼容性视图替换count函数
- 参考资料
count()函数的正确使用
count()函数用于统计SQL Server表中的记录行。但是当表中存在NULL的内容时,那么如下3种写法的结果将不一样:
select count(*)
select count(1)
select count(列名)
我们创建一个表,然后循环插入5000条记录,并做查询对比
--创建一个test表CREATE TABLE test ( id UNIQUEIDENTIFIER DEFAULT NEWID() NOT NULL PRIMARY KEY CLUSTERED, sequence INT NOT NULL, data CHAR(50) NOT NULL DEFAULT '', data_null CHAR(50));--循环插入5000条记录--注意:-- data字段填充了''-- data_null字段填充了NULLSET NOCOUNT ON DECLARE @i INT; SET @i = 0; WHILE @i < 5000 BEGIN INSERT test (sequence) VALUES (@i); SET @i = @i + 1; END; GO
我们使用上述3种写法分别统计这个表的记录数:
SELECT COUNT(*), COUNT(4), COUNT(t.data), COUNT(t.data_null)FROM test t
如下所示,count(t.data_null)显示为0,即select count(列名)将过滤NULL的记录:
同时可见,count(*)/count(4)的写法等价。
使用兼容性视图替换count()函数
当SQL Server记录行在百万或上千万时,使用count()函数可能需耗时2~3秒或更长时间,这将出现短暂的锁表。那么对于聚集索引表我们可使用兼容性视图中的sys.sysindexes进行高效的查询(如下SQL对堆表同样适用)
SELECT rowcntFROM sys.sysindexes sWHERE id = OBJECT_ID('test')AND s.indid < 2
其中s.indid的含义如下:
0 = Heap1 = Clustered index>1 = Nonclustered index
另需注意这个兼容性视图无法过滤记录行,只能返回表的总记录数
参考资料
COUNT (Transact-SQL)
https://msdn.microsoft.com/en-us/library/ms175997%28v=sql.100%29.aspx
2 0
- 正确使用SQL Server中的count()函数
- SQL Server COUNT()函数
- 正确使用SQL Server 2012中的SEQUENCE
- 十五. Sql server count函数
- SQL Server中的STUFF函数的使用
- SQL Server中的DATEPART函数的使用
- SQL Server中的OBJECTPROPERTY函数使用
- SQL Server中的OBJECTPROPERTY函数使用
- SQL Server中的OBJECTPROPERTY函数使用
- SQL Server中的DATEPART函数的使用
- SQL Server中的STUFF函数的使用
- SQL Server中的STUFF函数的使用
- SQL Server中的STUFF函数的使用 .
- SQL Server中的STUFF函数的使用
- SQL Server中的STUFF函数的使用
- Sql Server 中的Like的正确用法
- Sql Server 中的Like的正确用法
- SQL Server与Oracle在 count() over() 函数的差异
- JZWC【Day1】题解&总结
- 菱形继承
- Eclipse 快捷键
- poj 2492 A Bug's Life 并查集
- Linux曲径通幽:常用命令(压缩解压命令)
- 正确使用SQL Server中的count()函数
- 使用actionBar,实现ViewPagerIndicator的效果(ViewParger指示器)
- WordPress给用户添加联系方式
- 3757: 苹果树 树上莫队 位运算技巧
- Linux学习之路——使用su用户身份无法切换的问题
- Delphi CompareValue函数的使用
- WordPress给附件添加属性
- 【POJ 2983】Is the Information Reliable?(差分约束系统)
- TIPTOP ERP不完全实施开发手册