首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

菜神提问?该怎么处理

2012-02-17 
菜神提问?主键ID       回复主题ID1           02           03           14           25           16 

菜神提问?
主键ID       回复主题ID
1           0
2           0
3           1
4           2
5           1
6           1
有以上两个字段,第二列如果是0,前面的主键ID就是主题的编号.否如果是1,就是回复编号为1的主题,如果是2就是回复编号为2的主题.
怎么写查询语句能够得到:主题的总数,和回复各编号主题的总数.



[解决办法]
select case when 回复主题ID =0 then 主键ID else 回复主题ID end as 主题目的编号,sum(case when 回复主题ID =0 then 1 else 0 end) as 主题总数,sum(case when 回复主题ID =0 then 0 else 1 end) as 回复总数
from tablename
group by case when 回复主题ID =0 then 主键ID else 回复主题ID end


[解决办法]
case when 回复主题ID =0 then 主键ID else 回复主题ID end
也就是其他语言中的if else
if(回复主题ID =0)
主键ID;
else
回复主题ID

热点排行