关于count函数的使用,如下所示该怎么解决?

碰见一条SQL语句(存储过程中的)
DECLARE @TempID int
SELECT @TempID = count(1) FROM t_ChanalInfo WHERE [Ch] = @Ch
我对这里面的count(1)不太明白,一般碰到的count都是写成count(*),哪位高手帮我讲一个这里面的1和*各代表什么

翻翻过去那场雪
浏览 350回答 2
2回答

犯罪嫌疑人X

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_logWHERE 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 输出结果如下:

HUH函数

把select查询语句中的列选择部分换成count(*)或者count(列名)。那么查询语句就会返回select查询结果的数据有多少条。也就是带有count的查询,其返回结果就是一行一列的一个数字。例如:select*fromstudentwherenamelike'张%';//查询所有姓张的学生信息selectcount(*)fromstudentwherenamelike'张%'//查询姓张的学生的人数而count(列名)在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数。selectcount(en_score)fromstudentwherenamelike'张%'//查询姓张的学生中有英语成绩的学生人数
打开App,查看更多内容
随时随地看视频慕课网APP