【问题标题】:SQL Server query returning comma separated values [duplicate]SQL Server查询返回逗号分隔值[重复]
【发布时间】:2011-12-27 02:19:10
【问题描述】:

可能重复:
Combine multiple results in a subquery into a single comma-separated value

我有一个查询,它返回一个人对象,还需要返回一个包含逗号分隔的组织列表的组织列。我当前的查询如下:

SELECT
p.PersonID,
p.Title,
p.FirstName,
p.LastName,
p.DateOfBirth,
p.EmailAddress,
p.MobileNumber,
p.EntityID,
(SELECT o.Name FROM Entities.Organisations o
    JOIN Entities.OrganisationPeople op ON o.OrganisationID = op.OrganisationID        AND op.PersonID = p.PersonID) AS 'Organisations'
  FROM
Entities.People p

当有一个组织附属于一个人时,这很好,但我不妨只做一个标准加入。我想用逗号分隔的列表在组织列中返回可能不止一个结果。

这可能吗?

【问题讨论】:

标签: sql-server tsql join


【解决方案1】:

来自here,这是一个例子:

1.创建 UDF

CREATE FUNCTION CombineValues
(
@F_ID INT --The foreign key from TableA which is used to fetch corresponding records
)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @SomeColumnList VARCHAR(8000);

SELECT @SomeColumnList = COALESCE(@SomeColumnList + ', ', '') + CAST(SomeColumn AS varchar(20)) 
FROM TableB C
WHERE C.FK_ID = @FK_ID;

RETURN 
(
SELECT @SomeColumnList
)
END

2。在子查询中使用

SELECT ID, Name, dbo.CombineValues(FK_ID) FROM TableA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-21
    • 2014-01-15
    • 2015-10-06
    • 2010-10-05
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多