.net 使用外部联接sql将多行合并为一行
我有以下数据,我只想显示表1中每个表1ID的3行1行,但有些ID在表2中有多个条目,这会在显示数据时创建一个新行,但我想将表2s数据合并到表1中的一行中.net 使用外部联接sql将多行合并为一行,.net,sql-server-2008,.net,Sql Server 2008,我有以下数据,我只想显示表1中每个表1ID的3行1行,但有些ID在表2中有多个条目,这会在显示数据时创建一个新行,但我想将表2s数据合并到表1中的一行中 Table 1 Table 2 Table1Id Name State table2Id Table1Id City 1 Bart Idaho
Table 1 Table 2
Table1Id Name State table2Id Table1Id City
1 Bart Idaho 1 1 Boise
2 Jenny Utah 2 2 Salt Lake
3 Jill Arizona 3 3 Phoenix
4 3 Yuma
Select * From Table1 FULL OUTER JOIN Table2 ON Table1.TableId = Table2.Table1Id
So far, it displays 4 rows like this:
Name State City
1.Bart Idaho Boise
2. Jenny Utah Salt Lake
3. Jill Arizona Phoenix
4. Jill Arixona Yuma
I want it to display 3 rows like this (with my gridview of course)
Name State City
1.Bart Idaho Boise
2. Jenny Utah Salt Lake
3. Jill Arizona Phoenix Yuma
与此类似,您可以使用STUFF和XML路径作为分组依据
选择
[ID],
[姓名],
[国家],
东西
选择“,”+[City]+”:“+将[Value]转换为VARCHARMAX
从你的桌子上
其中ID=Results.ID
对于XML路径,键入.value'/text[1]',VARCHARMAX'
,1,2,作为名称值
从您的表格结果
按ID分组
由于这更像是一个显示问题,因此通常最好在前端而不是后端执行此操作。因此,无法使用类似于我的连接方式执行此操作?原因是我的select要复杂得多,有多个连接和一个轴,但我试图使这个假设查询适合我连接该表的方式。如果您想在该结束表上基本上执行GROUP BY,并将字符串连接到单个列中,这是我见过的最简单的方法。我会接受你的答案,因为它确实回答了问题,并且会在这里提出一个更复杂的问题