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