sql 学习

本文介绍了一种在 SQL Server 中实现数据聚合的方法,通过使用 T-SQL 的 STUFF 和 FOR XML PATH 函数来将同一 ID 下的多个名称字段值合并为一个字符串。此技巧对于需要进行数据汇总展示的应用场景非常有用。

sql server 学习

  • 问题一

数据库中有表如下,

id  name  
1   lizhen
1   nihao
1   welcome
2   zhangsan
2    nihao

呈现如下

1  lizhen,nihao,welcome
2  zhangsan,nihao
  • 解决问题

    USE play
    go
    if EXISTS (SELECT 1 from Sysobjects where name='test' )
    drop table test
    go
    
    create table test(id int,name VARCHAR(50));
    insert test(id,name) values(1,'lizhen');
    insert test(id,name) values(1,'nihao');
    insert test(id,name) values(1,'welcome');
    insert test(id,name) values(2,'zhansan');
    insert test(id,name) values(2,'deny');
    USE play
    go
    SELECT id ,name=STUFF((SELECT ','+name from test as t2 where t2.id=test.id for xml path('') ), 1, 1, '')
    from test
    GROUP BY id;
    
    USE play
    go
    SELECT id ,(SELECT name from test as t2 where t2.id=test.id for xml path('') )
    from test
    GROUP BY id;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值