34,575
社区成员
发帖
与我相关
我的任务
分享
DECLARE @t TABLE(autograph VARCHAR(10), deptmc VARCHAR(10), FiledName VARCHAR(10),FiledMx VARCHAR(100))
INSERT @t
SELECT '陈涛','重症医学科','专业方向','重症医学'
UNION all SELECT '陈涛','重症医学科','级别','国家级'
UNION all SELECT '陈涛','重症医学科','论文名称','不同抗菌药物联用对ICU重症感染患者抗感染治疗的临床疗效及其对病原菌'
UNION all SELECT '陈涛','重症医学科','专业方向','重症医学'
UNION all SELECT '陈涛','重症医学科','级别','国家级'
UNION all SELECT '陈涛','重症医学科','论文名称','国外医院评审的历史与经验及其对我国医院评审的启示'
UNION all SELECT '陈涛','重症医学科','专业方向','重症医学'
UNION all SELECT '陈涛','重症医学科','级别','国家级'
UNION all SELECT '陈涛','重症医学科','论文名称','JCI与我国医院评审标准中药事管理方面内容的比较及启示'
UNION all SELECT '陈涛','重症医学科','专业方向','重症医学'
UNION all SELECT '陈涛','重症医学科','级别','国家级'
UNION all SELECT '陈涛','重症医学科','论文名称','HIMSS7级认证药物闭环管理的探讨'
SELECT autograph,deptmc
,MAX(CASE WHEN FiledName = '专业方向' THEN FiledMx ELSE '' END)
,MAX(CASE WHEN FiledName = '级别' THEN FiledMx ELSE '' END)
,MAX(CASE WHEN FiledName = '论文名称' THEN FiledMx ELSE '' END)
FROM (SELECT id=ROW_NUMBER() OVER(PARTITION BY autograph,filedname ORDER BY autograph,filedname), * FROM @t) t
GROUP BY autograph,deptmc,id
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([autograph] nvarchar(22),[deptmc] nvarchar(25),[FiledName] nvarchar(24),[FiledMx] nvarchar(54))
Insert #T
select N'陈涛',N'重症医学科',N'专业方向',N'重症医学' union all
select N'陈涛',N'重症医学科',N'级别',N'国家级' union all
select N'陈涛',N'重症医学科',N'论文名称',N'不同抗菌药物联用对ICU重症感染患者抗感染治疗的临床疗效及其对病原菌' union all
select N'陈涛',N'重症医学科',N'专业方向',N'重症医学' union all
select N'陈涛',N'重症医学科',N'级别',N'国家级' union all
select N'陈涛',N'重症医学科',N'论文名称',N'国外医院评审的历史与经验及其对我国医院评审的启示' union all
select N'陈涛',N'重症医学科',N'专业方向',N'重症医学' union all
select N'陈涛',N'重症医学科',N'级别',N'国家级' union all
select N'陈涛',N'重症医学科',N'论文名称',N'JCI与我国医院评审标准中药事管理方面内容的比较及启示' union all
select N'陈涛',N'重症医学科',N'专业方向',N'重症医学' union all
select N'陈涛',N'重症医学科',N'级别',N'国家级' union all
select N'陈涛',N'重症医学科',N'论文名称',N'HIMSS7级认证药物闭环管理的探讨'
Go
--测试数据结束
SELECT t1.autograph AS 姓名,t1.deptmc AS 科室名称,t2.FiledMx AS 专业方向,t1.FiledMx AS 级别,t3.FiledMx AS 论文名称 FROM (
SELECT *,ROW_NUMBER()OVER(PARTITION BY autograph ORDER BY GETDATE()) rn from #T WHERE FiledName='级别'
)t1 JOIN (
SELECT *,ROW_NUMBER()OVER(PARTITION BY autograph ORDER BY GETDATE()) rn from #T WHERE FiledName='专业方向'
)t2 ON t2.autograph = t1.autograph AND t2.deptmc = t1.deptmc AND t1.rn=t2.rn
JOIN (
SELECT *,ROW_NUMBER()OVER(PARTITION BY autograph ORDER BY GETDATE()) rn from #T WHERE FiledName='论文名称'
)t3 ON t3.autograph = t1.autograph AND t3.deptmc = t1.deptmc AND t1.rn=t3.rn