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

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

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

錢周

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲天堂网2018 | 和两个男人玩3p好爽视频 | 亚洲香蕉网久久综合影院3p | 四虎成人影院网址 | 欧美精品99久久久久久人 | 亚洲麻豆精品 | 韩国日本在线观看 | 国产女主播在线播放一区二区 | 关晓彤被调教出奶水 | 日韩美毛片 | 波多野结衣伦理在线观看 | 欧美日韩精品乱国产538 | 国产成人精品男人的天堂538 | 国产欧美日韩精品一区二区三区 | 欧美洲大黑香蕉在线视频 | 射18p | 欧美高清片 | 久久精品免视看国产 | 91久久国产成人免费观看资源 | 国产日韩欧美在线一二三四 | 国产拍拍视频一二三四区 | 2018久久精品热在线观看 | 精品久久成人免费第三区 | 男gay网站视频免费观看 | 韩国美女主播在线 | 欧美日韩亚洲综合久久久 | 日韩高清在线观看 | 男人操女人视频 | 国产第2页 | 91精品啪在线观看国产老湿机 | 精品国产原创在线观看视频 | xxxx意大利xxxxhd| 四虎免费在线观看 | 亚洲香蕉网久久综合影院3p | 国产51 | 动漫xnxx | 日韩精品国产自在欧美 | chinesespanking网站 | 美女翘臀内疯狂进出 | 女生被爆操 | meyd–456佐山爱在线播放 |