同张表里的两行数据,A列数值相同,B列数值不同,怎么合并成一行显示?

ff167 2006-05-08 04:17:17

id content datetime
userA XXXXXX 06-06-06
userB XXXXXX 06-06-06
userC YYYYYY 06-06-06

如这样的表,怎么能选出下边这种结果呢

idA idB Content Datetime
userA userB XXXXXX 06-06-06
userC null YYYYYY 06-06-06

谢谢
...全文
287 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
子陌红尘 2006-05-08
  • 打赏
  • 举报
回复
declare @t table(id varchar(8),parent varchar(8),content varchar(8),datetime varchar(8))
insert into @t select 'userA','userB','XXXXXX','06-06-06'
insert into @t select 'userB',null ,'XXXXXX','06-06-06'
insert into @t select 'userC',null ,'YYYYYY','06-06-06'

select
a.id,b.id,a.content,a.datetime
from
@t a
left join
@t b
on
a.parent=b.id and a.content=b.content and a.datetime=b.datetime
where
not exists(select 1 from @t where parent=a.id and content=a.content and datetime=a.datetime)

/*
id id content datetime
-------- -------- -------- --------
userA userB XXXXXX 06-06-06
userC NULL YYYYYY 06-06-06
*/
pengdali 2006-05-08
  • 打赏
  • 举报
回复
select (select count(*) from 表 where id<=a.id and content=a.content) num,* into #a from 表 a

select a.id ida,b.id idb,a.content,a.datetime from #a a left join #a b on a.num=1 and b.num=2 and a.Content=b.Content

go
drop table #a
ff167 2006-05-08
  • 打赏
  • 举报
回复
补充下,原表中还有一行 parent
比如userA那行,parent是userB

而另外两行,parent都是空

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧