PDA

View Full Version : وصل کردن مقدر عدد ثابت به تمام مقادیر



djhooman
دوشنبه 05 اسفند 1392, 17:35 عصر
با سلام خدمت دوستان گل

یه سوالی داشتم میخواستم راهنماییم کنید .

من حدود 200.000 تا رکورد در بانکم دارم که این رکورد هام دارای شماره پرونده هستند و میخوام به همه شماره پرونده هام مقداری اضافه بشه بصورتی که خدمتتون میگم :

فرمت کلی شماره پرونده هام باید به اینصورت تبدیل بشه یعنی بصورت مثال 110012345 ( طول کل شماره پرونده ام باید کلا 9 رقم باشه ! )

مثلا شماره پرونده 39464 باید تبدیل بشه به 110039464
مثلا شماره پرونده 1454 باید تبدیل بشه به 110001454
مثلا شماره پرونده 39 باید تبدیل بشه به 110000039
مثلا شماره پرونده 847 باید تبدیل بشه به 110000847
و 200.000 رکورد دیگر ....
یعنی فرمت کلی شماره پرونده هام باید اولشون 11 اصافه بشه و بعدش به نسبت شماره ای که داره ، 0 قبل شماره وارد بشه تا مجموعا 9 رقم بشه ...

ممکنه یه شماره پرونده ام یک رقمی باشه ممکنه دو رقمی ممکنه سه رقمی ممکنه چهار رقمی و ممکنه پنج رقمی باشه !!!
حالت کلی تغییر اینجوری باید باشه که اگر شماره پرونده 12 بود باید 5 تا 0 قبلش قرار بگیره و عدد 11 هم قبل صفر ها که به صورت 110000012 تبدیل بشه !!!
ضمناً حداقل شماره پرونده ام 1 رقمی و حد اکثر شماره پرونده ام 5 رقمی می باشد !!!!!

چطوری میتونم این تغییر رو روی دیتاهام بوجود بیارم ؟؟؟؟

Rejnev
دوشنبه 05 اسفند 1392, 18:35 عصر
راحت ترین راه:



update myTable
set
col=
(
case
when col<10 then 11000000
else
when col<100 then 1100000
else
when col<1000 then 110000
else
when col<10000 then 11000
else
when col<100000 then 1100
else
110
end
)
+ col

hamid_hr
دوشنبه 05 اسفند 1392, 19:04 عصر
از توابع رشته ای استفاده کنید

declare @tlb table(t1 varchar(10))insert into @tlb
select 1 union
select 11 union
select 111 union
select 1111 union
select 11111 union
select 111111 union
select 1111111
select SUBSTRING('1100000000',1,10 - LEN(t1)) + t1 from @tlb

pashna
چهارشنبه 07 اسفند 1392, 00:40 صبح
سلام،
به نظر من یه کار دیگه هم میتونی‌ بکنی‌ که خیلی‌ ساده است. اونم اینه که شمارهٔ پرونده هر مقداری که هست به علاوهٔ ۱۱۰۰۰۰۰ بکنی‌



UPDATE Table
SET Col = Col + 110000000