PDA

View Full Version : مشکل پیوند دورشته در حلقه



kkkaka
یک شنبه 22 بهمن 1391, 10:16 صبح
سلام به همه بنده قصد دارم داخل یک حلقه که تقریبا 3 الی 5 بار بیشتر نمیچرخه یک رشته رو با مقدار قبل خودش پیوند بدم .
دستور زیر تقریبا درست کار میکنه ولی مشکلش اینه که یه عدد 2 به رشته اضافه میکنه !!

Declare @nd varchar(200)
Declare @tbl varchar(50)
while (@j>=@i)
begin
select @k=COUNT(*) from temp
if(@k>1)
begin
set @tbl = (select tblname from temp where counter=@i)
set @nd ='select * from ['+ @tbl +'] Union'
set @nd =@nd+CHAR(50)
set @nd =@nd+@nd
set @i=@i+1
end
end
exec(@nd)

محمد سلیم آبادی
یک شنبه 22 بهمن 1391, 12:26 عصر
کاراکتر 2 در واقع برابر است با مقدار کاراکتری که کد اسکیش برابر با 50 است.
شما مقدار متغیر nd را در حلقه با کاراکتر 2 الحاق می کنید.

kkkaka
یک شنبه 22 بهمن 1391, 12:39 عصر
در کل چطور باید دوتا رشته رو باهم ترکیب کنم ؟؟
set @nd =@nd+@nd
این دستور کار نمیکنه.

محمد سلیم آبادی
یک شنبه 22 بهمن 1391, 14:04 عصر
در کل چطور باید دوتا رشته رو باهم ترکیب کنم ؟؟
set @nd =@nd+@nd
این دستور کار نمیکنه.
دستور انتسابی که نوشتین درسته، مقدار متغیر را با خودش الحاق می کنه. از این syntax هم میتونید برای جمع کردن یک مقدار با یک مقدار دیگر استفاده کنید:
set @value1 + = @value2

f_talebi
یک شنبه 22 بهمن 1391, 15:30 عصر
دستور انتسابی که نوشتین درسته، مقدار متغیر را با خودش الحاق می کنه. از این syntax هم میتونید برای جمع کردن یک مقدار با یک مقدار دیگر استفاده کنید:
set @value1 + = @value2

اول مقدار یک با خودش جمع میشه بعد مقدار دو هم باش جمع میشه ؟
فرق اولی با این دومی ک نوشتین چیه؟

محمد سلیم آبادی
یک شنبه 22 بهمن 1391, 16:29 عصر
اول مقدار یک با خودش جمع میشه بعد مقدار دو هم باش جمع میشه ؟
فرق اولی با این دومی ک نوشتین چیه؟
کدی که نوشتم معادل این کد هست:
set @value1 = @value1 + @value2
یعنی مقدار فعلی متغیر 1 با مقدار متغیر 2 جمع شود و حاصل ریخته شود در متغیر 1.
و برای سادگی اون کد رو تبدیل میکنیم به این کد:
set @value1+=@value2