一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - Sql Server 字符串聚合函數

Sql Server 字符串聚合函數

2019-11-10 16:24mssql教程網 Sql Server

Sql Server 有如下幾種聚合函數SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN,但是這些函數都只能聚合數值類型,無法聚合字符串。

如下表: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


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

錢周

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女撒尿部位无遮挡 | 亚洲精品视频久久 | 国产精品香蕉夜间视频免费播放 | 四虎永久免费地址在线网站 | 9999网站| 日本videohd18| 色啊色| 5g影院天天 | 好姑娘在线观看完整版免费 | 国产精品成| 狠狠色婷婷狠狠狠亚洲综合 | 色哟哟久久| 好姑娘在线观看完整版免费 | 韩国三级大全 | 精品日本三级在线观看视频 | 欧美极品摘花过程 | 四虎精品影视 | 桃色视频破解版 | bestialitysex杂交| 婷婷久久精品 | 催眠白丝舞蹈老师小说 | 国产精品久久久精品视频 | 欧美日韩国产一区二区三区欧 | 青草青草视频2免费观看 | 国产123区在线视频观看 | 精品久久久久久久久久香蕉 | 色老板最新网站视频地址 | 污到你怀疑人生 | 3黑人巨大vs北岛玲 3d肉浦团在线观看 3d动漫免费 | 久久亚洲精品AV成人无码 | 午夜福到在线4国产 | 日本视频免费在线播放 | 无码爽死成人777在线观看网站 | 国内精品 大秀视频 日韩精品 | 免费视频一区 | 国产区香蕉精品系列在线观看不卡 | 精品久久香蕉国产线看观看麻豆 | 亚洲天堂网2018 | gay18高中生白袜xnxx动漫 | 精品一产品大全 | 青青青在线视频播放 |