PDA

View Full Version : سطری کردن رکوردها



mahdi_14263
شنبه 16 بهمن 1389, 18:37 عصر
با سلام خدمت دوستان من یک جدول دارم مثل جدول زیر
name-code
1- علی
2- نیما
3- امین
2- سینا
4- اکبر
2- بهمن
3- کبری
2- احمد
حالا وقتی که دستوری مثل زیر رو مینویسم
select name form tbltemp where code = 2
خروجیش یک جدول تک ستونه است که شامل اسمهایی هست
حالا من میخوام یک پروسیجر بنویسم که تمام رکوردهای این جدول رو به صورت یک رکورد اون هم به شکل زیر برگردونه
نیما ، سینا ، بهمن ، احمد
البته این رو بگم که از sql 2005 دارم استفاده میکنم ، و چون داده هام خیلی زیادن دوست دارم راهی باشه که سریعترین باشه ،
ممنون از وقتی که گذاشتین

حمیدرضاصادقیان
شنبه 16 بهمن 1389, 19:11 عصر
سلام. به این روش میگن Crosstab که در نسخه 2005 به بالا میتوانید به استفاده از Pivot اینکارو انجام بدید. در وبلاگ من یک مطلب در این مورد نوشتم.میتونید به اونجا مراجعه کنید.

یاشار24
سه شنبه 19 بهمن 1389, 16:48 عصر
کد زیر را امتحان کنید شاید برایتان مفید باشد
declare @name nvarchar(max)
set @name=''
select @name=coalesce (@name+',','')+cast((name) as nvarchar(50))
select @name

حمیدرضاصادقیان
سه شنبه 19 بهمن 1389, 21:01 عصر
البته کدی که دوستمون نوشتن برای این هست که فقط این اسامی کنار هم قرار بگیرند که با استفاده از for XMl خیلی بهتر میشه اینکارو انجام داد که در تاپیک معما این مورد مطرح شده است.
موردی که من عرض کردم این هست که مقادیریک سطر به ستون تبدیل شده و بتوان عملیات محاسباتی برای ان انجام داد.