SQL STRING_AGG() 函数

SQL STRING_AGG() 函数

SQL STRING_AGG() 函数是一个用于连接字符串值的聚合函数。

它接受两个参数 strseparator ,将字符串表达式的值连接起来,并在它们之间放置分隔符值。它返回一个使用指定分隔符连接的新字符串。

返回类型取决于第一个参数(字符串表达式),如果表达式类型是字符串,则结果类型将与字符串表达式类型相同。

注意 − 分隔符不会在字符串末尾添加。

下面是SQL STRING_AGG() 函数的语法 −

STRING_AGG ( exp, separator) [ <order_clause> ])

参数

  • exp −它是任意类型的表达式。

  • separator −它是varchar或nvarchar类型的表达式,用作连接字符串的分隔符。

  • < order_clause>−它指定了在GROUP子句内使用的连接结果的排序顺序。

示例

在下面的示例中,我们使用SQL的 STRING_AGG() 函数将内容行连接到单个字段中。

假设我们已经创建了一个名为 Customers 的表,如果两个或多个客户具有相同的ID,我们可以按照指定的分隔符 GROUP by 列名 ID 将客户的数据(如姓名、工资、地址等)连接到单个字段中。

以下是创建名为Customers的表的 CREATE 语句−

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   |  
+-----------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程