SQL常见函数整理 _ STRING_AGG()

  • 用法

    STRING_AGG() 是一个聚合函数,用于提取行中的所有表达式,并将这些表达式串联成一个字符串。 表达式值隐式转换为字符串类型,然后串联在一起。

  • 语法

sql 复制代码
STRING_AGG ( expression , separator ) [ <order_clause> ]

<order_clause> ::=
    WITHIN GROUP ( ORDER BY <order_by_expression_list> [ ASC | DESC ] )   
  • 应用示例
sql 复制代码
if object_id('ProdList','u')  is not null drop table ProdList
go 
create table ProdList (
 商品名称   varchar(20)
,订单实收   decimal(19,6)
)
go 
insert into  ProdList 
values 
 ('烧烤',99)
,('烧烤',109)
,('火锅',89)
,('火锅',119)
,('冰淇淋',9.9)
go 
--Output 
select  商品名称,STRING_AGG(CONVERT(nVARCHaR(max),订单实收),',')   
within group  (order by 订单实收  asc)  as  CSV
from ProdList
group by 商品名称;
  • 注意事项
    适用于:SQL Server 2017 (14.x) 及以后版本
    忽略 Null 值,并且不会添加相应的分隔符。
sql 复制代码
if object_id('CourseSchedule ','u') is not null drop table Sales
go
create table CourseSchedule (
  Name       varchar(10)
, Course      varchar(10)
)
go
insert into CourseSchedule 
values
 ( 'Janne','语文')
,( 'Janne',null)
,( 'Mary' ,'数学')
,( 'Mary' ,'英语')
,( 'Jacky' ,null)
,( 'Grace' ,'化学' )
go
--Output
SELECT name,STRING_AGG(CONVERT (NVARCHAR (MAX),Course ),',') AS csv
FROM CourseSchedule
group  by  name
GO
相关推荐
赤壁小虾1 天前
【渲染流水线】[逐片元阶段]-[透明度测试]以UnityURP为例
java·前端·数据库
MC皮蛋侠客1 天前
SQLAlchemy 系列(七):高级建模与高效写入——批量 DML、方言与扩展
数据库·python
奈斯先生Vector1 天前
把 Midjourney 二次编辑做成生产系统:customId 能力令牌、Action Graph 与 WebUI 精修工作台
数据库·人工智能·架构·aigc·音视频·midjourney
fengci.1 天前
Microweber CMS 未授权路径穿越漏洞(CVE-2026-65694)
android·开发语言·前端·学习·php
Lethehong1 天前
双擎并驱·全链路并行:KFS让TB级异构增量同步秒级到达
数据库
MC皮蛋侠客1 天前
SQLAlchemy 系列(八):AsyncIO、并发与 Web 生命周期——让每个并发任务持有自己的 Session
数据库·python
一水1 天前
Redis实战:一个AI工作流系统里的五个应用场景,从传参到限流的完整链路
数据库·redis·wpf
stevenzqzq1 天前
Android 矢量图(Vector Drawable)核心坐标与尺寸机制技术文档
android
plainGeekDev1 天前
运行时获取依赖 → 编译时注入
android·java·kotlin
枫叶v.1 天前
Prompt Injection 防不住怎么办?从 Source-Sink 模型设计 Agent 安全边界
数据库·安全·prompt