SQL Server 2000 相当于 GROUP_CONCAT 函数

2023-12-22

我尝试使用GROUP_CONCATSQL Server 2000 中的函数但返回错误:

“group_concat”不是可识别的函数名称”

所以我想还有一个其他功能group_concat在 SQL Server 2000 中?你能告诉我那是什么吗?


不幸的是,由于您使用的是 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, '');

一起生成列表的一种方法是创建一个函数 http://databases.aspfaq.com/general/how-do-i-concatenate-strings-from-a-column-into-a-single-row.html。示例函数如下:

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;

See SQL 摆弄演示 http://sqlfiddle.com/#!3/22404/1。这会给你一个结果:

| ID |      NAMES |
-------------------
|  1 |  John, Jim |
|  2 |        Bob |
|  3 | Jane, Bill |
|  4 |       Test |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 2000 相当于 GROUP_CONCAT 函数 的相关文章

随机推荐