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

时间:2014-01-06 12:36:44

标签: sql

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

关系是: 我有一个名为Activity的父表。 和表Activity的N-1关系的子表,称为ActivityObjective。 第三个表格中我保留了目标的名称,称为Objective

这是我的查询。这将返回具有Activity

的特定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”。我无法创建临时表,因为我正在使用函数。

1 个答案:

答案 0 :(得分:0)

您需要调整以下内容以匹配您特别想要的内容,但这是一个开始:

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 )