现在的位置: 首页 > 综合 > 正文

关于SQL语句Count的一点细节

2012年11月17日 ⁄ 综合 ⁄ 共 784字 ⁄ 字号 评论关闭

   count语句支持*、列名、常量、变量,并且可以用distinct关键字修饰, 并且count(列名)不会累计null的记录。下面随便用一些例子示范一下count的规则:比如对如下表做统计,所有列这里都用sql_variant类型来表示。


 

 

if
(object_id
('t_test'
)>
0
)
    drop
table
t_test

go

create
table
t_test
(a
sql_variant
,
b sql_variant
,
c
sql_variant
)
insert
into
t_test
select
1
,
1
,
'a'

insert
into
t_test
select
1
,
getdate
(),
null

insert
into
t_test
select
'a'
,
null
,
1

insert
into
t_test
select
3
,
null
,
null

insert
into
t_test
select
null
,
null
,
null

go

select
*
from
t_test

go

select

     count
(*
)                --总数

    ,
count
(nullif
(1
,
1
))        --永远返回0

    ,
count
(a
)                --a数量

    ,
count
(b)                --b数量

    ,
count
(distinct
a
)        --a不重复数量

    ,
count
(isnull
(b,
c
))        --b或者c不为null数量

    ,
count
(Coalesce
(a
,
b,
c
))    --a或者b或者c不为null数量

    ,
count
(nullif
(a
,
b))        --a不等于b的数量

    ,
count
(nullif
(isnumeric
(cast
(a
as
varchar
(38
))),
0
))--a是数字的数量

from
t_test

抱歉!评论已关闭.