Sql Server 字符串聚合函数
如下表:AggregationTable
Id | Name |
1 | 赵 |
2 | 钱 |
1 | 孙 |
1 | 李 |
2 | 周 |
如果想得到下图的聚合结果
Id | Name |
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
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
select dbo.AggregateString(Id),Id from AggregationTable
group by Id
结果为:
Id | Name |
1 | 赵孙李 |
2 | 钱周 |
相关推荐
-
SQL Server实现split函数分割字符串功能及用法示例
本文实例讲述了SQL Server实现split函数分割字符串功能及用法.分享给大家供大家参考,具体如下: /* 函数名称:f_SplitToNvarchar 作用:实现split功能的函数 更新记录: 设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里 */ CREATE FUNCTION [dbo].[f_SplitToNvarchar] ( @SourceSql NVARCHAR(MAX),--源分隔字符串 @StrSeprate VARCHAR
-
SQL SERVER2012中新增函数之字符串函数CONCAT详解
介绍 SQLSERVER 2012新增了两个字符串函数CONCAT和FORMAT.本文首先介绍一下CONCAT,CONCAT函数的作用是可以返回多个字符串拼接后的结果. CONCAT 函数最多可以连接255个字符变量,当调用这个函数的时候需要至少接收两个参数,参数类型不一定是字符串类型,也可以是可以隐式转换为字符串的类型比如int ,float等类型.只要符合sql 2012的能隐式转换为字符串的规则即可,当我们想把两个值类型的数据连接起来的时候,不需要先将它们转为nvarchar然后再通过"+
-
SQLServer中的切割字符串SplitString函数
复制代码 代码如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* by kudychen 2011-9-28 */ CREATE function [dbo].[SplitString] ( @Input nvarchar(max), --input string to be separated @Separator nvarchar(max)=',', --a string that delimit the substrings in
-
sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法
语法 REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' ) 参数说明 'string_expression1' 待搜索的字符串表达式.string_expression1 可以是字符数据或二进制数据. 'string_expression2' 待查找的字符串表达式.string_expression2 可以是字符数据或二进制数据. 'string_expression3' 替换
-
SQL Server字符串切割函数
复制代码 代码如下: CREATE FUNCTION fGetStrBySplit ( @Source VARCHAR(max), @Index INT, @SplitChar VARCHAR(1) ) RETURNS varchar(MAX) AS BEGIN DECLARE @Len INT DECLARE @n INT = 0 DECLARE @ChIndex INT DECLARE @Result VARCHAR(MAX) --获取总长度 SET @Len = LEN(@Source)
-
SQL server中字符串逗号分隔函数分享
继SQl -Function创建函数数据库输出的结果用逗号隔开,在开发中也有许多以参数的形式传入带逗号字条串参数(数据大时不建议这样做) 例:查找姓名为"张三,李二" 的数据此时在数据库里就要对此参数做处理如图: 函数代码如下 CREATE FUNCTION [dbo].[fnSplitStr] ( @sText NVARCHAR(Max), @sDelim CHAR(1) ) RETURNS @retArray TABLE ( value VARCHAR(100) ) AS BEGI
-
Sql Server 字符串聚合函数
如下表:AggregationTable Id Name 1 赵 2 钱 1 孙 1 李 2 周 如果想得到下图的聚合结果 Id Name 1 赵孙李 2 钱周 利用SUM.AVG.COUNT.COUNT(*).MAX 和 MIN是无法做到的.因为这些都是对数值的聚合.不过我们可以通过自定义函数的方式来解决这个问题.1.首先建立测试表,并插入测试数据: 复制代码 代码如下: create table AggregationTable(Id int, [Name] varchar(10)) go
-
SQL Server中聚合函数的用法
聚合函数对一组值执行计算,并返回单个值. 除了 COUNT 外,聚合函数都会忽略 Null 值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用. OVER 子句可以跟在除 STRING_AGG.GROUPING 或 GROUPING_ID 函数以外的所有聚合函数后面. 只能在以下位置将聚合函数作为表达式使用: SELECT 语句的选择列表(子查询或外部查询). HAVING 子句. T-SQL提供的聚合函数一共有13个之多. 1.avg:平均值 avg( [ all |
-
Sql Server中Substring函数的用法实例解析
SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'
-
SQL Server 2012 开窗函数
废话不多说了,直接给大家贴代码了,具体代码如下所示: -- 开窗函数:在结果集的基础上进一步处理(聚合操作) -- Over函数,添加一个字段显示最大年龄 SELECT * , MAX(StuAge) OVER ( ) MaxStuAge FROM dbo.Student; -- Over函数,添加一个字段显示总人数 SELECT * , COUNT(StuID) OVER ( ) StuCount FROM dbo.Student; -- Partition By 分组统计数量 -- 根据性别
-
SQL Server 2012 开窗函数
废话不多说了,直接给大家贴代码了,具体代码如下所示: -- 开窗函数:在结果集的基础上进一步处理(聚合操作) -- Over函数,添加一个字段显示最大年龄 SELECT * , MAX(StuAge) OVER ( ) MaxStuAge FROM dbo.Student; -- Over函数,添加一个字段显示总人数 SELECT * , COUNT(StuID) OVER ( ) StuCount FROM dbo.Student; -- Partition By 分组统计数量 -- 根据性别
-
SQL Server格式转换函数Cast、Convert介绍
CAST.CONVERT都可以执行数据类型转换.在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能. CAST是ANSI兼容的,推荐使用CONVERT. 一.语法 CONVERT (data_type [ ( length ) ] , expression [ , style ]) CAST (expression AS data_type [ (length ) ]) data_type:目标系统所提供的数据类型,包括 bigint
-
SQL Server中JSON函数的用法详解
目录 一. 将查询结果输出JSON格式 1.FOR JSON AUTO:SELECT语句的结果以JSON输出. 2.FOR JSON AUTO,Root(’’) :为JOSN加上根节点 3.FOR JSON PATH输出:可通过列别名来定义JSON对象的层次结构 4.FOR JSON PATH+ROOT输出:为JOSN加上根节点 5.INCLUDE_NULL_VALUES:值null的字段需要显示出现. 6.列的别名,可以增加带有层级关系的节点. 二. 解析JSON格式的数据 1.使用OPENJ
-
深入浅析Orcale的nvl函数和SQL Server的isnull函数
Orcal 的 nvl函数 NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr2的值,否则返回Expr1的值,Expr1,Expr2都为NULL则返回NULL NVL2(Expr1,Expr2,Expr3)如果Expr1为NULL,返回Expr2的值,否则返回Expr3的值 NULLIF(Expr1,Expr2)如果Expr1和Expr2的值相等,返回NULL,否则返回Expr1的值 Coalesce(expr1, expr2, expr3-.. exprn) 表示可以指定多
随机推荐
- 详解使用路由延迟加载 Angular 模块
- PHP+Mysql+Ajax+JS实现省市区三级联动
- herf=#导致Ajax请求时没有向后台发送数据
- 让代码整洁、过程清晰的BASH Shell编程技巧
- IE8下jQuery改变png图片透明度时出现的黑边
- 详解Linux 下开发微信小程序安装开发工具
- Java常用的一些多媒体文件基本操作方法简介
- ADO.NET制做一个登录案例
- php采用curl实现伪造IP来源的方法
- C语言中求余弦值的相关函数总结
- C++中用两个标准容器stack,实现一个队列的方法详解
- Js中使用hasOwnProperty方法检索ajax响应对象的例子
- Python脚本实现代码行数统计代码分享
- jQuery复制节点用法示例(clone方法)
- 从JVM分析Java的类的加载和卸载机制
- PowerShell中的变量基础知识介绍
- JQuery勾选指定name的复选框集合并显示的方法
- 我教你学之注册表系统外观修改实例(三)
- sxs.exe病毒专杀工具之“橙色八月专杀工具.bat”
- 也谈跨站脚本攻击与防御