gpt4 book ai didi

SQL Server 2000 相当于 GROUP_CONCAT 函数

转载 作者:行者123 更新时间:2023-12-03 01:55:52 25 4
gpt4 key购买 nike

我尝试在 SQL Server 2000 中使用 GROUP_CONCAT 函数,但它返回错误:

'group_concat' is not a recognized function name"

所以我猜在 SQL Server 2000 中还有一个用于 group_concat 的函数?你能告诉我这是什么吗?

最佳答案

遗憾的是,由于您使用的是 SQL Server 2000,因此无法使用 FOR XML PATH 将值连接在一起。

假设我们有以下示例数据:

CREATE TABLE yourtable ([id] int, [name] varchar(4));

INSERT INTO yourtable ([id], [name])
VALUES (1, 'John'), (1, 'Jim'),
(2, 'Bob'), (3, 'Jane'), (3, 'Bill'), (4, 'Test'), (4, '');

可以一起生成列表的一种方法是 create a function 。示例函数如下:

CREATE FUNCTION dbo.List 
(
@id int
)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @r VARCHAR(8000)
SELECT @r = ISNULL(@r+', ', '') + name
FROM dbo.yourtable
WHERE id = @id
and Name > '' -- add filter if you think you will have empty strings
RETURN @r
END

然后,当您查询数据时,您将向函数传递一个值以将数据连接成一行:

select distinct id, dbo.list(id) Names
from yourtable;

参见SQL Fiddle with Demo 。这会给你一个结果:

| ID |      NAMES |
-------------------
| 1 | John, Jim |
| 2 | Bob |
| 3 | Jane, Bill |
| 4 | Test |

关于SQL Server 2000 相当于 GROUP_CONCAT 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16618132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com