我试图从表中找到相关信息,并将这些结果(连同其他无关结果)作为较大查询的一部分在一行中返回。在主查询中的一列中返回多个值
我已经试过使用这个例子,修改我的数据。
How to return multiple values in one column (T-SQL)?
但我不能让它工作。它不会提取任何数据(我确定它是用户[me]错误)。
如果我直接使用TempTable查询表,我可以正确地得到结果。
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将变化基于该函数的输入条件。但既然你不能在一个函数中使用TempTables ...我被卡住了。
我试图查询的表中的相关字段如下。
tblNextOfKin
ID - VARCHAR(12)
名称 - VARCHAR(60)
关系 - VARCHAR(30)
地址 - VARCHAR(100)
我希望这是足够的理智......我看到了在另一篇文章中适合的表达。
我的SQL-fu不太好。
一旦我得到一个工作函数,我会将它放到我正在处理的SSIS包的主查询中,该查询从其他许多表中提取数据。
如果需要,我可以提供更多详细信息,但该网站说保持简单,我试图这样做。
谢谢!
后续行动(因为当我在下面的响应中添加注释时,我无法编辑格式)
我需要能够从不同列中获取结果。
ID名称关联地址
1,迈克,SON,100主街
1,萨拉,DAU,100主街
2,蒂姆,SON,123南大街
无论是前两个人住在同一地址,所以如果我查询ID ='1'和地址='100 Main St.'我需要的结果看起来像...
“DAU,SON”
看起来会工作,但是是好还是坏,我们使用的是Microsoft SQL。感谢您的答复。 – Scottster 2010-12-10 20:07:47
啊,对不起..我读了我的SQL福,并阅读它为mysql fu:D – Unreason 2010-12-10 20:42:03