PDA

View Full Version : برگرداندن کل مقادیر یک فیلد در یک رشته



Davood_amega
یک شنبه 04 مهر 1389, 16:16 عصر
سلام و تشکر از شما دوست عزیز
بنده در یک جدولم نیاز دارم که کل مقادیر یکی از فیلدهام را در داخل یک رشته برگردونه .


مثلا اگه تو اون فیلده مقادیر 101 - 102 - 103 - 104 - 105 بود اونا را تو یه متغیر رشته ای بریزه مثل متغیر زیر :


Str="101,102,103,104,105"

Davood_amega
یک شنبه 04 مهر 1389, 17:20 عصر
با این کد مشکلو رفع کردم .

Alter FUNCTION dbo.F_GET_Room
(@Res_ID int)
RETURNS varchar(100)
AS
BEGIN
DECLARE @p_str VARCHAR(1000)
SET @p_str = ''
SELECT @p_str = @p_str + CAST(RS_Room_ID AS NVARCHAR(15))+ ','
FROM Rooms_State
WHERE RS_Res_ID = @Res_ID
return substring(@p_str,1,len(@p_str)-1)
Endکه اگه مثلا عدد 100 را به عنوان پارامتر بفرستیم در صورتیکه RS_Res_ID برابر 100 باشد تمام فیلدهای RS_Room_ID با کاما از هم جدا می کند و برمی گرداند .

حمیدرضاصادقیان
یک شنبه 04 مهر 1389, 19:44 عصر
سلام.اگر یک فیلدت مقادیری مثل 101و102و103و... داره این جدول ایراد داره. یک فیلد باید تنها یک مقدار خاص داشته باشه.
مثلا شما نمیتونی چند تا شماره تلفن رو در یک فیلد ذخیره کنی .این نوع جدول غیر نرمال هست.
شما باید اون فیلدها رو تفکیک کنی و در یک جدول دیگه قرار بدی و به وسیله یک کلید به هم ارتباط داشته باشی که نیازی نباشه برای به دست آوردن یک مقدار این جوری کوئری بنویسید.
موفق باشید

Davood_amega
دوشنبه 05 مهر 1389, 08:48 صبح
حمیدرضاصادقیان عزیز ممنون
نه من همچنین فیلدی ندارم فقط نیاز دارم Stored Procedure مربوطه کل مقادیر فیلدی که با شرط برقرار است را در یک TextBox نمایش دهم !

haririan2
چهارشنبه 07 مهر 1389, 17:06 عصر
من یه select میخوام بزنم که خروجیش این میشه

and ( (newreg=2) or (newreg=5) )
بعد همین رو توی select دیگه ای استفاده کنم
این به ذهنم رسید کسی میتونه اصلاحش کنه ؟

begin
declare @dlfile nvarchar(3200)
SET @dlfile = ''
set @dlfile = 'select top 100 * from data where isread = 1' + (select regstr from customer where ulevel = 4 and regstr != '')
exec( @dlfile )
end