SQL Server 多行结果合并实现

流程图

flowchart TD
    A(准备工作) --> B(创建临时表)
    B --> C(插入数据)
    C --> D(合并数据)
    D --> E(输出结果)

步骤及代码示例

1. 准备工作

在开始之前,我们需要先创建一个用于测试的数据库和表。

-- 创建数据库
CREATE DATABASE TestDB;

-- 切换到 TestDB 数据库
USE TestDB;

-- 创建测试表
CREATE TABLE TestTable (
    ID INT,
    Name VARCHAR(50)
);

2. 创建临时表

由于 SQL Server 没有直接提供多行结果合并的功能,我们可以通过创建一个临时表来实现合并的效果。

-- 创建临时表
CREATE TABLE #TempTable (
    ID INT,
    Name VARCHAR(50)
);

3. 插入数据

将需要合并的多行数据插入到临时表中。

-- 插入数据
INSERT INTO #TempTable (ID, Name)
VALUES (1, 'John'),
       (2, 'Mike'),
       (3, 'Sarah');

4. 合并数据

利用 GROUP BY 和 STRING_AGG 函数来合并临时表中的多行数据。

-- 合并数据
SELECT STRING_AGG(Name, ', ') AS CombinedNames
FROM #TempTable;

5. 输出结果

运行以上代码后,你将得到合并后的结果。

CombinedNames
----------------
John, Mike, Sarah

总结

通过以上步骤,我们成功实现了 SQL Server 上的多行结果合并。首先,我们创建了一个临时表用于存储需要合并的多行数据。然后,将数据插入到临时表中。接下来,利用 GROUP BY 和 STRING_AGG 函数将多行数据合并成一条字符串。最后,输出合并后的结果。

使用这种方法,你可以轻松地合并多个行的结果,适用于各种场景,如将多个商品名称合并为一条订单备注。

希望这篇文章对你有所帮助!