SQL Server,删除选择案例查询中的空值

时间:2015-11-25 15:11:27

标签: sql sql-server

下面的代码生成大约300行,但只有一小部分在“Unit = 3”列中有任何值。其余的值具有空值,因此存在列“ekod”中的许多重复值。

有没有人知道如何在“unit = 3”列中删除空值的所有行?

祝你好运!

结果:

ekod    unit=3    
0004    NULL
0114    15
0114    NULL
0114    NULL
0120    NULL
0120    NULL
0120    46
0120    NULL

代码:

 select 
  A.ekod
    ,case when A.unit='3' then count(*) end AS [Unit=3]
  from [Stat_unitdata].[dbo].[XXX_YYY] A
  group by a.ekod, a.unit
  order by ekod

2 个答案:

答案 0 :(得分:4)

您可以使用sum

select 
A.ekod
,sum(case when a.unit='3' then 1 else 0 end) AS [Unit=3]
from [Stat_unitdata].[dbo].[XXX_YYY] A
group by a.ekod
order by ekod

答案 1 :(得分:2)

请注意,如果您不关心零单位的ekod

select a.ekod, count(*) as [Unit=3]
from [Stat_unitdata].[dbo].[XXX_YYY] a
where a.unit = '3'
group by a.ekod
order by a.ekod;

这仅返回至少有ekod ='3'的unit个值。