我有2张表格如下
Table1
Id TagNo FBay FPanel TBay TPanel
------------------------------------------------------------
1 10000 A1 A2 E4 F2
2 10001 A2 R2 F2 Q1
Table2
Id TagNo CNo FDevice
-----------------------------
1 10000 1 X101
2 10000 2 XF09
3 10000 3 X101
4 10000 4 XY
5 10001 1 X20
6 10002 2 X20
7 10003 3 X20
我想要这个结果
TagNo FBay FPanel TBay TPanel FDevice
-----------------------------------------------------------------
10000 A1 A2 E4 F2 X101,XF09,XY
10001 A2 R2 F2 Q1 X20
记录的数量太多,如果我想使用Stuff Tsql,需要7分钟才能从数据库中获得一个不太好的结果。有没有解决方案可以得到这个结果?
这是我在其中使用了东西的查询的一部分
SELECT Distinct TagNo, FDevice = STUFF((SELECT ',' + FDevice FROM Table2 i
WHERE
i.TagNo = o.TagNo AND
FOR XML PATH('')),1,1,'')
FROM Table2 o
GROUP BY TagNo
答案 0 :(得分:1)
LINQ中没有任何 Stuff()函数。但也许你可以用这个来实现同样的目标
var results = from rw in Table2
group rw.FDevice by new { rw.TagNo } into grp
select new { grp.Key.TagNo, FDevice = string.Join (", ", grp) };
注意:我没有在VS中测试它,因此可能存在语法错误。请评论,如果有的话,谢谢。