SQL如何将select语句的值添加到varchar
我正在编写一个函数,它在一个varchar中返回子表的一列值的名称 这种关系是: 我有一个名为SQL如何将select语句的值添加到varchar,sql,Sql,我正在编写一个函数,它在一个varchar中返回子表的一列值的名称 这种关系是: 我有一个名为Activity的父表。 以及与表Activity具有N-1关系的子表,称为ActivityObjective。 还有第三个表,我保存目标的名称,称为Objective 这就是我提出的问题。这将返回具有ActivityID=@ActivityID SELECT o.ObjectiveName FROM Activity a INNER JOIN Activi
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位想知道微软为什么这么难做到这一点的开发者。