sql 分组的纳闷
信息表A 项目表 B
id, id,
name, A.id,
age, 项目名称
sex
姓名 年龄 性别 项目1 项目2 项目3
张三 16 男 X1 NULL NULL
张三 16 男 NULL X2 NULL
张三 16 男 NULL NULL X3
现在查询出来的结果是这种,如果去掉在一行结果中显示出来,不要分成三行。 SQL分组查询
[解决办法]
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (姓名 nvarchar(4),年龄 int,性别 nvarchar(2),项目1 nvarchar(4),项目2 nvarchar(4),项目3 nvarchar(4))
insert into [TB]
select '张三',16,'男','X1',null,null union all
select '张三',16,'男',null,'X2',null union all
select '张三',16,'男',null,null,'X3'
select 姓名,年龄,性别,max(项目1 ) as 项目1 ,max(项目2 ) as 项目2,max(项目3 ) as 项目3
from TB
group by 姓名,年龄,性别
/*
姓名年龄性别项目1项目2项目3
张三16男X1X2X3*/