Sql Server 字符串聚合函数

2016-02-19 09:01 6 1 收藏

今天图老师小编要跟大家分享Sql Server 字符串聚合函数,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - 编程语言 】

如下表:AggregationTableIdName1赵2钱1孙1李2周

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

IdName1赵孙李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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

结果为:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

IdName1赵孙李2钱周

来源:http://www.tulaoshi.com/n/20160219/1589203.html

延伸阅读
对于针对字符串位置的操作,第一个位置被标记为1。 ASCII(str) 返回字符串 str 的 最左面字符的ASCII代码值。 如果 str 是空字符串, 返回 0 。如果 str 是 NULL ,返回 NULL 。 mysql select ASCII('2'); - 50 mysql select ASCII(2); - 50 mysql select ASCII('dx'); - 100 也可参见ORD()函数。 ORD(str) 如果字符串str最左面字...
根据,MySQL 会自动将数字转化为字符串,反之亦然。 mysql SELECT 1+'1'; - 2 mysql SELECT CONCAT(2,' test'); - '2 test' 若想要将数字明确地转化为字符串,可使用 CAST()或 CONCAT()函数: mysql SELECT 38.8, CAST(38.8 AS CHAR); - 38.8, '38.8' mysql SELECT 38.8, CONCAT...
标签: ASP
1. 字符串函数: Len(str):取得字符串的长度 Instr(str1,str2):从字符串str1,寻找另一个字符串str2第一个出现的位置 Left(str,n):从字符串str左起取n个字符 Right(str,n):从字符串str右起取n个字符 Mid(str1,n1,n2):从字符串第n1个字符开始,取出n2个字符。 2.字符串函数应用: 1)通过字符函数设计出一个字符串长度控制函数: 防止超过行宽字符...
UPDATE Friend set Name = REPLACE(Name,'脚本,'脚本之家www.jb51.net')超级简单 
SQL中也可以用格式字符串定制日期转字符串 -------------------------------------------------------------------------------- 这篇论坛文章(赛迪网技术社区)介绍了SQL Server利用格式字符串定制日期转换为字符串的具体方法,更多内容请参考下文: 在C#中用惯了DateTime.ToString("yyyy-MM-dd"),DateTime.ToString("MM/dd/yyyy")这种日...

经验教程

992

收藏

43
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部