use*_*416 4 sql t-sql sql-server sql-server-2000 string-aggregation
我试图GROUP_CONCAT
在SQL Server 2000中使用该函数,但它返回一个错误:
'group_concat'不是可识别的函数名称"
所以我猜group_concat
在SQL Server 2000中还有其他功能吗?你能告诉我它是什么吗?
Tar*_*ryn 10
不幸的是,由于您使用的是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, '');
Run Code Online (Sandbox Code Playgroud)
您可以一起生成列表的一种方法是创建一个函数.示例函数将是:
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
Run Code Online (Sandbox Code Playgroud)
然后,当您查询数据时,您将向函数传递一个值以将数据连接成一行:
select distinct id, dbo.list(id) Names
from yourtable;
Run Code Online (Sandbox Code Playgroud)
请参阅SQL Fiddle with Demo.这给你一个结果:
| ID | NAMES |
-------------------
| 1 | John, Jim |
| 2 | Bob |
| 3 | Jane, Bill |
| 4 | Test |
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2492 次 |
最近记录: |