如下表:AggregationTable
IdName
1
2
1
1
2

如果想得到下图的聚合结果

IdName
1赵孙李
2钱周

利用SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN是无法做到的。因为这些都是对数值的聚合。不过我们可以通过自定义函数的方式来解决这个问题。
1.首先建立测试表,并插入测试数据:
复制代码 代码如下:
create table AggregationTable(Id int, [Name] varchar(10))
go
insert into AggregationTable
select 1,'赵' union all
select 2,'钱' union all
select 1,'孙' union all
select 1,'李' union all
select 2,'周'
go

2.创建自定义字符串聚合函数
复制代码 代码如下:
Create FUNCTION AggregateString
(
@Id int
)
RETURNS varchar(1024)
AS
BEGIN
declare @Str varchar(1024)
set @Str = ''
select @Str = @Str + [Name] from AggregationTable
where [Id] = @Id
return @Str
END
GO

3.执行下面的语句,并查看结果
复制代码 代码如下:
select dbo.AggregateString(Id),Id from AggregationTable
group by Id

结果为:

IdName
1赵孙李
2钱周

更多相关文章

  1. SQL Server之JSON 函数详解
  2. ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
  3. 箭头函数的基础使用
  4. Python技巧匿名函数、回调函数和高阶函数
  5. 浅析android通过jni控制service服务程序的简易流程
  6. Android(安卓)bluetooth介绍(四): a2dp connect流程分析
  7. Android架构分析之使用自定义硬件抽象层(HAL)模块
  8. Android中OpenMax的适配层
  9. android 包管理系统分析

随机推荐

  1. 第12天android:短信发送+测试使用
  2. Android中NDK各版本下载
  3. Android(安卓)横竖屏幕切换
  4. Mac下获取android studio keystore的SHA1
  5. Android网络之HttpUrlConnection和Socket
  6. Android常用功能代码总结一
  7. android 隐藏ListView滚动条
  8. android通过程序收起通知栏
  9. Android问题总结
  10. Android热修复三部曲之动态加载补丁.dex