云服务器网:购买云服务器和VPS必上的网站!

拼接用MSSQL拼接多行数据的方法

SQL 中有一种功能叫做“ 拼接”,行将多行数据“ 拼接”成1行数据,使得我们可以更快更有效地进行处理,而在MSSQL数据库中,可以利用 FOR XML PATH 来实现拼接多行数据。下面我们就来看下它的具体利用:
首先我们在数据库中新建一个表,表的结构以下:

SQL 中有一种功能叫做“ 拼接”,行将多行数据“ 拼接”成1行数据,使得我们可以更快更有效地进行处理,而在MSSQL数据库中,可以利用 FOR XML PATH 来实现拼接多行数据。下面我们就来看下它的具体利用:

首先我们在数据库中新建一个表,表的结构以下:

CREATE TABLE [TestTable] (
[ID] INT IDENTITY (1, 1) PRIMARY KEY,
[Col1] VARCHAR(50) NOT NULL,
[Col2] VARCHAR(50) NOT NULL
)
INSERT INTO [TestTable]
VALUES('A','1')
INSERT INTO [TestTable]
VALUES('B','2')
INSERT INTO [TestTable]
VALUES('C','3')
INSERT INTO [TestTable]
VALUES('D','4')

插入四条数据后,表中数据以下:

| ID | Col1 | Col2 |

| :—-: | :–: | :–: |

| 1 | A | 1 |

| 2 | B | 2 |

| 3 | C | 3 |

| 4 | D | 4 |

接下来就是我们利用 FOR XML PATH 来拼接多行数据,SQL语句以下:

SELECT
X.str1
FROM (
SELECT
A.Col1 + ', ' AS [text()]
FROM TestTable as A
FOR XML PATH ('')
) T(str1)

经过上面的SQL语句处理以后,拼接结果以下:

| str1 |

| :—- |

| A, B, C, D |

可以看到,通过FOR XML PATH 来实现的拼接,可以将多行数据拼接成1行的数据,这是MSSQL拼接多行数据的一种方法。

拼接多行数据的方法,除FOR XML PATH这类方法以外,还可使用XQuery 的string-join()函数实现:

SELECT 
RTRIM(X.str1) AS str1
FROM
(SELECT
(SELECT
',' + B.Col1
FROM TestTable AS B
WHERE B.ID
ORDER BY B.ID
FOR XML PATH (''))
FROM
TestTable AS A
) T(str1)

经过XQuery string-join()函数处理以后,拼接结果与之前一样:

| str1 |

| :—- |

| A, B, C, D |

总结来讲,可以利用 FOR XML PATH 或XQuery string-join()函数实现在MSSQL 数据库中拼接多行数据的方法,如此一来,我们就可以快速而实效地将多行数据拼接起来。

本文来源:https://www.yuntue.com/post/104978.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注