SQL Server 2000相当于组_CONCAT函数
我试图在SQL Server 2000中使用SQL Server 2000相当于组_CONCAT函数,sql,sql-server,tsql,sql-server-2000,string-aggregation,Sql,Sql Server,Tsql,Sql Server 2000,String Aggregation,我试图在SQL Server 2000中使用GROUP\u CONCAT函数,但它返回一个错误: “group_concat”不是可识别的函数名 因此,我想SQL Server 2000中还有另一个用于group\u concat的函数?您能告诉我它是什么吗?不幸的是,由于您使用的是SQL Server 2000,因此无法使用for XML PATH将值连接在一起 假设我们有以下样本数据: CREATE TABLE yourtable ([id] int, [name] varchar(4));
GROUP\u CONCAT
函数,但它返回一个错误:
“group_concat”不是可识别的函数名
因此,我想SQL Server 2000中还有另一个用于
group\u 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 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;
请参阅。这将为您提供一个结果:
| ID | NAMES |
-------------------
| 1 | John, Jim |
| 2 | Bob |
| 3 | Jane, Bill |
| 4 | Test |
您是说mysql在“您的SQL”中,因为这不是该标记的真正用途。您应该为Name>''添加另一个where子句条件。这将保护您不受Null和空字符串的影响,这将导致输出错误或非常奇怪。