db2中怎么用SQL将一张表中的两条数据合并成一行数据?

2025-01-19 22:13:42
推荐回答(2个)
回答1:

select A.姓名,A.数学 as [数学(一)],A.英语 as [英语(一)],A.时间 as [时间(一)],
    B.数学 as [数学(二)], B.英语 as [英语(二)], B.时间 as [时间(二)]
from yourtable as A inner join yourtable as B
on A.姓名 = B.姓名
where A.时间 < B.时间
union
select 姓名, 数学 as [数学(一)], 英语 as [英语(一)], 时间 as [时间(一)],
    null as [数学(二)], null as [英语(二)], null as [时间(二)]
from yourtable
where 姓名 in (select 姓名 from yourtable group by 姓名 having COUNT(时间) = 1)

回答2:

(select 姓名,数学 as 数学(一),英语 as 英语(一), min(时间) as 时间(一) group by 姓名) as a
full jion
(select 姓名,数学 as 数学(二),英语 as 英语(二), max(时间) as 时间(二) group by 姓名) as b
on a.姓名 = b,姓名