PDA

View Full Version : سوال: convert int to string همراه با 0 در قبل عدد



alirzn
دوشنبه 16 فروردین 1389, 11:24 صبح
من می خوام یک فیلد عددی رو به string تبدیل کنم اما در تمام شرایط 2 رقم باشه.مثلا عدد 1 وقتی به char تبدیل شد بشه 01 . مثل Tostring("00") تو c#. ممنون میشم راهنمایی کنید

pezhvakco
دوشنبه 16 فروردین 1389, 11:32 صبح
درود :

میتونی با یه شرط ساده ( مانند تقسیم به ده ) تعداد رقم ها رو بدست بیاری و اگه لازم بود یه صفر در ابتداش قرار بدی یا بعد از تبدیل به رشته ای با تعداد حروف کار کنی.

فکر خوش .

ASKaffash
دوشنبه 16 فروردین 1389, 11:51 صبح
سلام
از این تابع استفاده کن :


CREATE Function SetZero(@N Bigint,@L Tinyint)
Returns VarChar(255) As
Begin
Return Right(Replicate('0',20)+Convert(Varchar(20),IsNull (@N,0)),@L)
End

alirzn
دوشنبه 16 فروردین 1389, 12:44 عصر
مرسی از راهنمایی. query من هستش.
select * from v_oragh_total where cast(sal as nvarchar )+cast(mah_code as nvarchar )<138901
چطور میتونم از این function در query برای فیلد mah_code استفاده کنم. ممنون

سلام
از این تابع استفاده کن :


CREATE Function SetZero(@N Bigint,@L Tinyint)
Returns VarChar(255) As
Begin
Return Right(Replicate('0',20)+Convert(Varchar(20),IsNull (@N,0)),@L)
End

محمد سلیم آبادی
دوشنبه 16 فروردین 1389, 14:51 عصر
سلام،
Query که در ادامه قرار داده شده است را استفاده کنین:

چند نکته راجب Query که پست کردین:
1 همیشه هنگام تبدیل به رشته طول را نیز در نظر بگیرین در اینجا طول رشته برابر با 4 است
2 زمانی که نوع داده ی VARCHAR به تنهایی کافیه چرا باید از نوع NVARCHAR استفاده بشه




SELECT *
FROM v_oragh_total
WHERE CAST(sal AS VARCHAR(4)) + REPLACE(STR(mah_code, 2), ' ', '0') < 138901

ASKaffash
دوشنبه 16 فروردین 1389, 15:12 عصر
سلام
اینطوری :


Select * From v_oragh_total
Where Convert(int,dbo.SetZero(sal,4)+dbo.SetZero(mah_cod e,2))<138901

محمد سلیم آبادی
دوشنبه 16 فروردین 1389, 18:08 عصر
سلام
اینطوری :


Select * From v_oragh_total
Where Convert(int,dbo.SetZero(sal,4)+dbo.SetZero(mah_cod e,2))<138901


سلام،
آیا دلیل خاصی وجود داره که تابع را روی ستون sal اعمال کرده این؟ چون از مثال کاربر مشخص هست که این فرمت دهی را روی ستون sal احتیاج ندارد.

من تصور می کنم شما برای اینکه نشان بدین می توان تابع را یکبار تعریف نموده و چندین بار با پارامترهای متفاوت استفاده کرد این کار را انجام داده این.

ASKaffash
سه شنبه 17 فروردین 1389, 07:41 صبح
سلام،
آیا دلیل خاصی وجود داره که تابع را روی ستون sal اعمال کرده این؟ چون از مثال کاربر مشخص هست که این فرمت دهی را روی ستون sal احتیاج ندارد.

من تصور می کنم شما برای اینکه نشان بدین می توان تابع را یکبار تعریف نموده و چندین بار با پارامترهای متفاوت استفاده کرد این کار را انجام داده این.
سلام
پاسخ شما مثبت است