墨痕淡去 2022-02-24 15:15 采纳率: 50%
浏览 65
已结题

sqlserver数据库查询问题

在对sqlserver数据库进行查询,同一个ID下有多条数据,但是只有一个字段的内容是不一样的,其他字段的内容都完全相同,怎么才可以将多条数据整合成一条数据呢?
举例:
对1001这个ID,查询数据有3条:
id name sex age text
1001 tom 1 12 a
1001 tom 1 12 b
1001 tom 1 12 c
想要得到的结果:
id name sex age text
1001 tom 1 12 a,b,c

请问这种应该怎么实现呢

上面举例有问题,单一一条例子不具有原数据的代表性,原数据有很多,只举几条例子,重新修改一下例子:
《源数据库》
id name sex age text
1001 tom 1 12 a
1001 tom 1 12 b
1001 tom 1 12 c
1002 lucy 2 14 z
1002 lucy 2 14 y
1003 tony 1 13 x
1004 peter 2 13 d
1004 peter 2 13 e
1004 peter 2 13 f
1004 peter 2 13 g

应该得到的结果:
《目标形式》
id name sex age text
1001 tom 1 12 a,b,c
1002 lucy 2 14 z,y
1003 tony 1 13 a
1004 peter 2 13 d,e,f,g
上面是从源数据库查询到的结果,怎么可以转换成我想要的目标形式的数据呢

  • 写回答

4条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-02-24 16:09
    关注
    with t as (
    select 1001 id, 'tom' name, 1 sex, 12 age, 'a' text union all
    select 1001, 'tom' ,1 ,12, 'b' union all
    select 1001 ,'tom' ,1 ,12 ,'c')
    
    select t.id,t.name,t.sex,t.age,
    stuff((select ','+t2.text from t as t2 where t2.id=t.id and t2.name=t.name and t2.sex=t.sex and t2.age=t.age for xml path('')),1,1,'') text 
    from t group by t.id,t.name,t.sex,t.age
    

    img


    上面这个sql已经考虑到数据里存在分组的情况了,sql不用改

    img

    话说你自己就没去试一下么?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 已采纳回答 3月4日
  • 修改了问题 2月24日
  • 修改了问题 2月24日
  • 展开全部

悬赏问题

  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000