SQL如何将select语句的值添加到varchar

SQL如何将select语句的值添加到varchar,sql,Sql,我正在编写一个函数,它在一个varchar中返回子表的一列值的名称 这种关系是: 我有一个名为Activity的父表。 以及与表Activity具有N-1关系的子表,称为ActivityObjective。 还有第三个表,我保存目标的名称,称为Objective 这就是我提出的问题。这将返回具有ActivityID=@ActivityID SELECT o.ObjectiveName FROM Activity a INNER JOIN Activi

我正在编写一个函数,它在一个varchar中返回子表的一列值的名称

这种关系是: 我有一个名为
Activity
的父表。 以及与表
Activity
具有N-1关系的子表,称为
ActivityObjective
。 还有第三个表,我保存目标的名称,称为
Objective

这就是我提出的问题。这将返回具有
ActivityID=@ActivityID

SELECT      o.ObjectiveName      
FROM        Activity a    
INNER JOIN  ActivityObjective ao ON a.ActivityID = ao.ActivityID      
INNER JOIN  Objective o ON o.ObjectiveID = ao.ObjectiveID     
WHERE       a.ActivityID = @ActivityID
这将返回类似于:

    ObjectiveName
|-------------------|
    objName1
    objName2
    objName3

我的目标是没有一个varchar“objName1,objName2,objName3”。我无法创建临时表,因为我正在使用函数

您需要调整以下内容以符合您的具体需求,但这只是一个开始:

Select  substring((
    SELECT (', ' +  o.ObjectiveName)
    FROM        Activity a    
    INNER JOIN  ActivityObjective ao ON a.ActivityID = ao.ActivityID      
    INNER JOIN  Objective o ON o.ObjectiveID = ao.ObjectiveID     
    WHERE       a.ActivityID = @ActivityID
    FOR XML PATH( '' )
), 3, 1000 )
请参见谷歌的这个例子。成为第1000.000位想知道微软为什么这么难做到这一点的开发者。