我想在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