select 职务,
(select top 1 A1 from t where A1 is not null and 职务=a.职务),
(select top 1 A2 from t where A2 is not null and 职务=a.职务),
(select top 1 A3 from t where A3 is not null and 职务=a.职务)
from t a
group by 职务
(select top 1 A1 from t where A1 is not null and 职务=a.职务),
(select top 1 A2 from t where A2 is not null and 职务=a.职务),
(select top 1 A3 from t where A3 is not null and 职务=a.职务)
from t a
group by 职务
大副 冯康成 曾国庆 胡一心
大管轮 冯康成 曾国庆 胡一心
代大副 冯康成 曾国庆 胡一心
代大管轮 冯康成 曾国庆 胡一心
二管轮 冯康成 曾国庆 胡一心
二水 冯康成 曾国庆 胡一心
副水手长 冯康成 曾国庆 胡一心
机工 冯康成 曾国庆 胡一心
轮机长 冯康成 曾国庆 胡一心
实习驾驶 冯康成 曾国庆 胡一心
实习轮机 冯康成 曾国庆 胡一心
水手长 冯康成 曾国庆 胡一心数据跟举例数据有出入,是因为我的表中的记录较多引起。
insert ppp(name,a1,a2,a3) values('船长','冯康成',NULL,NULL)
insert ppp values('船长',NULL,'曾国庆', NULL)
insert ppp values('船长',NULL,NULL,'胡一心')
insert ppp values('大副',NULL,NULL,'蔡红枫')
insert ppp values('大副',NULL,NULL,'姚欣伟')
insert ppp values('大副',NULL,'罗建军',NULL)
insert ppp values('大副','陈震宙',NULL,NULL)
insert ppp values('大副','刘震杰',NULL,NULL)
insert ppp values('大管轮',NULL, NULL,'巨 越')
insert ppp values('代大副',NULL, '蔡月清',NULL)select name,
拖8=(select top 1 a1 from ppp where a1 is not null and name=ppp.name),
拖16=(select top 1 a2 from ppp where a2 is not null and name=ppp.name),
拖17=(select top 1 a3 from ppp where a3 is not null and name=ppp.name)
from ppp
group by nameselect * from ppp执行结果:
name 拖8 拖16 拖17
船长 冯康成 曾国庆 胡一心
大副 冯康成 曾国庆 胡一心
大管轮 冯康成 曾国庆 胡一心
代大副 冯康成 曾国庆 胡一心结果跟要求又出入,是怎么回事呢?求助,感谢!!!!!!!
拖8=(select top 1 a1 from ppp where a1 is not null and name=a.name),
拖16=(select top 1 a2 from ppp where a2 is not null and name=a.name),
拖17=(select top 1 a3 from ppp where a3 is not null and name=a.name)--这里要别名
from ppp a--这里要有别名
group by name
参考一下 ,有启发告诉我哦