PDA

View Full Version : سوال: چه کارکنیم تا صفرقبل از اعداد هم منظور شود؟



حسین شهریاری
سه شنبه 05 آبان 1388, 09:27 صبح
سلام!!

اگه یه فیلد عددی توی SQL داشته باشیم چیکار کنیم تا بتونیم یه رنج ثابت داشته باشیم
یعنی مثلا فرض کنید میخاهیم فیلد کد کل توی حسابداری چهار رقمی باشه و زمانی که کاربر
عدد 1 را وارد کرد به طور خودکار 0001 در بانک ذخیره بشه و بطور کلی صفرهای قبل عدد هم
منظور بشه؟

پیشاپیش تشکر میکنم.

ASKaffash
سه شنبه 05 آبان 1388, 10:46 صبح
سلام
از این تابع استفاده کن :


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

محمد سلیم آبادی
سه شنبه 05 آبان 1388, 11:35 صبح
یا :


Declare @C VarCHAR (4),
@i INT,
@j VarCHAR (4)

SELECT @C='25',
@i=1,
@j=''
Set @C= REVERSE(@C)
While (@i <= 4)
Begin
If SUBSTRING(@c, @i, 1) <> '' Set @j = @j + SUBSTRING(@c, @i, 1)
Else if substring(@c, @i, 1) = '' Set @j=@j + '0'

Set @i=@i + 1
End

Print Reverse(@j)


--Inpute : 25
--Output : 0025

حسین شهریاری
سه شنبه 05 آبان 1388, 11:36 صبح
جنابASKAFFASHاگه ممکنه طریقه استفاده ازش را بایه مثال بفرمایید

ممنون

محمد سلیم آبادی
سه شنبه 05 آبان 1388, 11:43 صبح
اگه ممکنه طریقه استفاده ازش را بایه مثال بفرمایید

ممنون

ابتدا باید این تابع را در یک پنجره Query اجرا کنید تا تابع ساخته شود.

سپس در دستور select به شکل زیر از آن استفاده کنید:


select dbo.SetZero( id, 4)
from your_table