各位好,小弟现在有个关于SQL语句的问题想请教大家一下:
select count(N) from 表 where 查询条件
这条语句应该就是查询出现后面‘查询条件’的总和,问题是当我count(N)里面的N取0和1,查询结果都是一样的,0和1到底代表什么意思呢,还有就是N还有其它取值吗?分别是代表什么意思?
在线等待各位的帮忙。先在此谢谢各位了.

解决方案 »

  1.   

    他返回的是行数和表达式没有关系
    和all或distinct修饰符有关系
      

  2.   

    select count(N) from 表 where 查询条件 这个是个统计查询语句,里面的N是字段,0或其他也是表示字段的索引(但不能超过字段总数减1),也可以是字段名,一个表中的数据行是与你查什么字段没关系的,关键是查询条件,所以N是零或1和select count(*) from 表 where 查询条件 都是没有什么区别的,但有一些地方还是选择指定字段好一些,如一个表中有一个字段Image类型(名为FileData)的,最好就不要用count(*) 和count(FileData) ,因为FileData字段可能存放的是大数据包,所以效力就低下了.
      

  3.   

    COUNT
    返回组中项目的数量。 语法
    COUNT ( { [ ALL | DISTINCT ] expression ] | * } ) 参数
    ALL对所有的值进行聚合函数运算。ALL 是默认设置。DISTINCT指定 COUNT 返回唯一非空值的数量。expression一个表达式,其类型是除 uniqueidentifier、text、image 或 ntext 之外的任何类型。不允许使用聚合函数和子查询。可见不使用distinct的话,N是0或1都是一样的
      

  4.   

    ycg_893() ( 二级(初级))   这位兄弟说:
    里面的N是字段,0或其他也是表示字段的索引(但不能超过字段总数减1),也可以是字段名
    但我的表中只有5个字段,我的N取值却是100,但结果还是一样,我想“0或其他也是表示字段的索引(但不能超过字段总数减1)”这句话是不是有错呢,不好意思,小弟实在不明白,只能问清楚一样
      

  5.   

    联机丛书上说的很清楚了
    N就是expression ,不是什么索引