- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表数据
- SQL - 约束
- SQL 查询
- SQL - INSERT 查询
- SQL - SELECT 查询
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - UPDATE 查询
- SQL - DELETE 查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布尔 (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - INNER JOIN
- SQL - LEFT JOIN
- SQL - RIGHT JOIN
- SQL - CROSS JOIN
- SQL - FULL JOIN
- SQL - 自连接
- SQL - DELETE JOIN
- SQL - UPDATE JOIN
- SQL - LEFT JOIN vs RIGHT JOIN
- SQL - UNION vs JOIN
- SQL 密钥
- SQL - UNIQUE KEY
- SQL - PRIMARY KEY
- SQL - FOREIGN KEY
- SQL - 组合键
- SQL - 备选键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - UNIQUE INDEX
- SQL - 聚簇索引
- SQL - 非聚簇索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - MIN & MAX
- SQL - NULL 函数
- SQL - CHECK 约束
- SQL - DEFAULT 约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 类型转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - STRING_AGG() 函数
SQL 的STRING_AGG() 函数是一个聚合函数,用于连接字符串值。
它接受两个参数str和separator,连接字符串表达式的值,并在它们之间放置分隔符值。它返回一个带有指定分隔符的新连接字符串。
返回类型取决于第一个参数(字符串表达式),如果表达式的类型是字符串,则结果类型将与字符串表达式类型相同。
注意 - 分隔符不会添加到字符串的末尾。
以下是 SQL STRING_AGG() 函数的语法:
STRING_AGG ( exp, separator) [ <order_clause> ])
参数
exp - 它是任何类型的表达式。
separator - 它是 varchar 或 nvarchar 类型的表达式,用作连接字符串的分隔符。
<order_clause> - 它使用 GROUP 子句指定连接结果的排序顺序。
示例
在下面的示例中,我们使用 SQL STRING_AGG() 函数将内容行连接到单个字段中。
假设我们创建了一个名为Customers的表,如果两个或多个客户具有相同的 ID,我们可以使用指定的分隔符将客户数据(例如他们的姓名、薪水、地址等)连接到单个字段中,GROUP BY 列名ID。
以下是使用CREATE语句创建名为 Customers 的表的语句:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, FIRST_NAME VARCHAR (20), LAST_NAME VARCHAR(20),s AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2));
现在,让我们使用 INSERT 语句插入一些具有相同 ID 的客户记录,如下所示:
INSERT INTO CUSTOMERS VALUES (1, 'Dinesh','Verma', 33, 'Hyderbad', 2200.00 ); INSERT INTO CUSTOMERS VALUES (1, 'Ganesh','Kumar', 30, 'Lucknow', 2900.00 ); INSERT INTO CUSTOMERS VALUES (1, 'Reeta','Sharma', 23, 'Delhi', 3100.00 );
以下 SQL 查询将连接在Customers表中具有相同ID的客户行:
SELECT ID, STRING_AGG(FIRST_NAME,';') All_customer_with_same_Id FROM CUSTOMERS GROUP BY ID;
输出
以下是上述查询的输出:
+----+----------------------------+ | ID | All_customer_with_same_Id | +----+----------------------------+ | 1 | Dinesh;Ganhesh;Reeta;Gane | | 2 | Ramesh | | 3 | Khilan;kaushik | | 4 | Chaitali | +----+----------------------------+
示例
以下是STRING_AGG()函数的另一个示例,这里我们将列FIRST_NAME的内容按列LAST_NAME分组连接。
SELECT STRING_AGG(FIRST_NAME, '/') NEW_LIST FROM CUSTOMERS GROUP BY LAST_NAME;
输出
以下是上述SQL查询的输出:
+-----------------+ | NEW_LIST | +-----------------+ | kaushik/Ganhesh | | Ganesh/Ramesh | | Chaitali | | Reeta | | Dinesh/Khilan | +-----------------+
sql-string-functions.htm
广告