sql中count函数的使用
DECLARE @TempID int
SELECT @TempID = count(1) FROM t_ChanalInfo WHERE [Ch] = @Ch
我对这里面的count(1)不太明白,一般碰到的count都是写成count(*),哪位高手帮我讲一个这里面的1和*各代表什么 展开
COUNT() 函数返回匹配指定条件的行数。
SQL COUNT(column_name) 语法
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
SELECT COUNT(column_name) FROM table_name;
SQL COUNT(*) 语法
COUNT(*) 函数返回表中的记录数:
SELECT COUNT(*) FROM table_name;
SQL COUNT(DISTINCT column_name) 语法
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:
SELECT COUNT(DISTINCT column_name) FROM table_name;
注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。
SQL COUNT(column_name) 实例
下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:
实例
SELECT COUNT(count) AS nums FROM access_log
WHERE site_id=3;
SQL COUNT(*) 实例
下面的 SQL 语句计算 "access_log" 表中总记录数:
实例
SELECT COUNT(*) AS nums FROM access_log;
执行以上 SQL 输出结果如下:
SQL COUNT(DISTINCT column_name) 实例
下面的 SQL 语句计算 "access_log" 表中不同 site_id 的记录数:
实例
SELECT COUNT(DISTINCT site_id) AS nums FROM access_log;
执行以上 SQL 输出结果如下:
例如:
select
*
from
student
where
name
like
'张%';
//查询所有姓张的学生信息
select
count(*)
from
student
where
name
like
'张%'
//查询姓张的学生的人数
而count(列名)在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数。
select
count(en_score)
from
student
where
name
like
'张%'
//查询姓张的学生中有英语成绩的学生人数
数据库引擎会把count(1)改为count(*)
主要是个人习惯
补充一下查看方法:
以下方式查看,楼上的不要误导.
SET SHOWPLAN_TEXT on ;
go
select count(1) from 表名
go
SET SHOWPLAN_TEXT off ;
2009-05-11
这里的count (1)=count(*)应该是统计这个表中满足where里条件的行数 并把值赋给@tempID