Sql 在主查询中的一列中返回多个值

Sql 在主查询中的一列中返回多个值,sql,Sql,我试图从一个表中查找相关信息,并将这些结果与其他不相关的结果一起返回一行,作为更大查询的一部分 我已经尝试过使用这个例子,为我的数据进行了修改。 但是我不能让它工作。它不会提取任何数据,我确信这是用户[me]错误 如果我直接使用一个诱惑函数查询表,我可以正确地得到结果 DECLARE @res NVARCHAR(100) SET @res = '' CREATE TABLE #tempResult ( item nvarchar(100) ) INSERT INTO #tempRes

我试图从一个表中查找相关信息,并将这些结果与其他不相关的结果一起返回一行,作为更大查询的一部分

我已经尝试过使用这个例子,为我的数据进行了修改。 但是我不能让它工作。它不会提取任何数据,我确信这是用户[me]错误

如果我直接使用一个诱惑函数查询表,我可以正确地得到结果

DECLARE @res NVARCHAR(100)  
SET @res = ''  
CREATE TABLE #tempResult ( item nvarchar(100) )  
INSERT INTO #tempResult  
SELECT Relation AS item  
FROM tblNextOfKin  
WHERE ID ='xxx' AND Address ='yyy'  
ORDER BY Relation   
SELECT @res = @res + item + ', ' from #tempResult  
SELECT substring(@res,1,len(@res)-1) as Result  
DROP TABLE #tempResult  
注意上面的WHERE行,xxx和yyy将根据函数的输入标准而变化。但既然你不能在函数中使用诱惑词。。。我被卡住了

我试图查询的表中的相关字段如下所示。 Tblnfkin ID-varchar12 姓名-varchar60 关系-varchar30 地址:varchar100

我希望这有足够的道理。。。我在另一篇帖子上看到了一个适合我的表达。 我的SQL fu不太好

一旦我得到一个工作函数,我将把它放在我正在处理的SSIS包的主查询中,该包正在从许多其他表中提取数据

如果需要的话,我可以提供更多的细节,但网站说要保持简单,我也试着这么做

谢谢

跟进,因为当我在下面的回复中添加评论时,我无法编辑格式 我需要能够从不同的列中得到结果。 ID名称关系地址 1,迈克,儿子,主大街100号。 DAU Sara 1号,主大街100号。 南大街123号蒂姆之子2号。 前两个人都住在同一个地址,所以如果我查询ID='1'和address='100 Main St'。我需要结果看起来像。。。 道,儿子

你可以用它来做整张桌子

SELECT ID, Address, GROUP_CONCAT(Relation ORDER BY Relation SEPARATOR ', ') AS item  
FROM tblNextOfKin  
GROUP BY ID, Address 
假设ID不是唯一的


注意:作为中间步骤,这通常是不好的做法,这只能作为演示文稿的最终格式,否则您将最终取消分组,这将非常痛苦

我认为您需要类似以下SQL Server的内容:

  SELECT stuff((select ',' +Relation 
  FROM tblNextOfKin a
  WHERE ID ='xxx' AND Address ='yyy'  
  ORDER BY Relation
  FOR XML path('')),1,1,'') AS res;

看起来这是可行的,但不管是好是坏,我们使用的是Microsoft SQL。谢谢你的回复。我认为这不符合我的需要。当我查找STUFF的语法时,它显示STUFF character_表达式、start、length、character_表达式,其中character_表达式是一个字符串,第二个character_表达式插入到第一个字符串的起始位置。我需要能够从不同的列中得到结果。ID姓名关系地址1,MIKE,SON,100 Main St.1,Sara,DAU,100 Main St.2,TIM,SON,123 South St前两个人都住在同一个地址,所以我需要查看结果,比如。。。1道,儿子
  SELECT stuff((select ',' +Relation 
  FROM tblNextOfKin a
  WHERE ID ='xxx' AND Address ='yyy'  
  ORDER BY Relation
  FOR XML path('')),1,1,'') AS res;