注册 登录
编程论坛 SQL Server论坛

SQL取数,请高手相助!

qq28289877 发布于 2010-06-18 20:18, 674 次点击
两张表如下:
小组:
ID  GroupName
1    一组
2    二组
3    三组
人员:
ID  Name  GroupId
1   张三     1
2   张二     2
3   张六     5
4   张七     8
5   张八     9
6   张九     3
如何生成如下结果:
ID  Name  GroupId
1   张三     一组
2   张二     二组
3   张六     其它组
4   张七     其它组
5   张八     其它组
6   张九     三组
7 回复
#2
cnfarer2010-06-19 06:33
select a.id,a.name,(case a.groupid when 1 then b.groupname else '其它组' when 2 then b.groupname else '其它组' when 3 then b.groupname else '其它组' end) as groupid from 人员 a inner join 小组 b on a.groupid=b.groupid
#3
aei1352010-06-19 08:53
select a.ID,a.Name,isnull(b.groupname,'其他族') as groupid from 人员 a left join 小组 b on a.ID=b.ID
#4
aei1352010-06-19 08:54
select a.ID,a.Name,isnull(b.groupname,'其他组') as Groupid from 人员 a left join 小组 b on a.ID=b.ID
#5
gameohyes2010-06-19 11:33
select b.id,name,组名=case when a.id=1 then GroupName
                           when a.id=2 then GroupName
                           when a.id=3 then GroupName else '其它组' end
    from a right join b on a.id=b.groupid
#6
gameohyes2010-06-19 11:37
感觉喜欢用4L的.
不过LZ要注意左右连接.
#7
qq282898772010-06-21 11:53
感谢各位楼上高手相助,太热情啦!感动!希望论坛一直能保持这种好作风!
1