sql 聚合函数
2016-03-24 15:33
253 查看
Sql Server 字符串聚合函数
ql Server 有如下几种聚合函数SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN,但是这些函数都只能聚合数值类型,无法聚合字符串。如下表:AggregationTable
Id | Name |
1 | 赵 |
2 | 钱 |
1 | 孙 |
1 | 李 |
2 | 周 |
Id | Name |
1 | 赵孙李 |
2 | 钱周 |
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
结果为:
Id | Name |
1 | 赵孙李 |
2 | 钱周 |
select stuff((select ','+title from tb for xml path('')),1,1,'')
程序员的基础教程:菜鸟程序员
相关文章推荐
- 数据库sqlite3的使用-ios中引用方法
- postgresql Streaming Replication监控与注意事项
- oracle sql 优化大全
- Oracle SQL性能优化
- 查看sqlserver被锁的表以及如何解锁
- sql截取字符串SUBSTRING
- 查看Oracle性能差的SQL
- sql 导数据一些问题
- oracle函数自己总结
- SQL server表中查询重复的数据
- 在SQLserver中如何获得两个日期相减的天数及日期函数
- SQL中N $ # @的作用
- Oracle查看允许的最大连接数和当前连接数
- SQL Server安全(5/11):架构与安全(Schemas and Security)
- SQL 存储过程返回值
- 在Ubuntu上安装Oracle Java 8, Java 7或者Java 6
- mysql备份与恢复详解
- 数据库设计的三大范式
- Mysql存储过程使用总结
- Hibernate 学习笔记(1):入门