急!急!急!,高手请帮帮我

shena 2003-07-22 12:15:00
请问怎样在group clause里用case when
我想实现如下操作:
当aa为空时,我将按照aa=0来group,而当aa<>0时,就用它本身来group

谢谢!
...全文
59 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2003-07-22
  • 打赏
  • 举报
回复
楼上的方法是不行的,我试过
CrazyFor 2003-07-22
  • 打赏
  • 举报
回复
group by
case when aa is null then 0
when aa ='' then X
when aa=XX then YYY
end
zjcxc 2003-07-22
  • 打赏
  • 举报
回复
或者用:
select case when aa is null then 0 else aa end as aa,其他字段列表
from 你的表
group case when aa is null then 0 else aa end,其他分组字段



select aa,其他字段列表
from (
select isnull(aa,0) as aa,其他字段列表 from 你的表) a
group by aa,其他分组字段

zjcxc 2003-07-22
  • 打赏
  • 举报
回复
先处理aa为空的情况,再用group 就行了.像下面这样

select isnull(aa,0) as aa,其他字段列表
from 你的表
group by isnull(aa,0),其他分组字段
shena 2003-07-22
  • 打赏
  • 举报
回复
不能判断吗?
nboys 2003-07-22
  • 打赏
  • 举报
回复
select sum(col) from TableName group by aa having aa<>0
union all
select sum(col) from TableName group by (case aa when null then 0 end)
饮水需思源 2003-07-22
  • 打赏
  • 举报
回复
可以先将数据库中的aa字段的null改为0
update tablename set aa=0 where aa is null
pengdali 2003-07-22
  • 打赏
  • 举报
回复
group by isnull(aa,0)
??

group by case when aa is null then 0 else clause end
??
nboys 2003-07-22
  • 打赏
  • 举报
回复
create table bb(id int,name varchar(100),parent_id int)

insert into bb values (1,'a',0)
insert into bb values (2,'b',1)
insert into bb values (3,'c',1)
insert into bb values (4,'d',2)


select sum(id) from bb group by
case when parent_id is null then 0
else parent_id
end


结果:
6 --null和0
5 --1
4 --2

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧