我想在SQL Server中编写一个存储过程,它将消除我的C#程序中的一些逻辑。我现在正在做的是查询是在视图中。然后我用这个观点列出一个清单。在SQL Server 2008 R2上重复执行并将它们压缩为1行?
List<MyView> listOrdered = new List<MyView>();
这是它变得毛茸茸的地方。查询返回重复的行。我不想删除要将它们组合成1行的重复行。除了1列以外,这些行是相同的。
例子:
UID Name Age Child
1 John 50 Sally
1 John 50 Steve
2 Joseph 42 Timmy
2 Joseph 42 Billy
所以我在做什么在C#中编写的逻辑,说:(伪代码)
foreach(item in list)
{
if (UID != UIDCurrent)
{
Build Row
AppendRow to list
}
else
{
Append Child Column to Current Child Column
}
}
基本上,它给了我:
UID Name Age Children
1 John 50 Sally, Steve
但不是在C#中做这个逻辑,我想做一个存储过程。所以我怎么才能让SQL Server为每行而不是多行组合子列。
如果您需要任何其他帮助您,我会回复。
哦,大家相信我,我也不想这样做。我使用的数据库非常庞大而且复杂,用C#做这件事很明智并且工作正常,但我被要求将我在C#中执行此操作的函数转换为存储过程。我只想看看这是否可能。
说实话。在你的代码中执行它。那就是那种逻辑所属的地方。注意:如果将数据库规范化为至少3NF,代码将变得更清晰。 – JohnFx 2012-02-27 19:22:56
**在'C#'中执行。** – JNK 2012-02-27 19:23:25