যে কোনও পছন্দসই প্রস্থে বাম-প্যাডিংয়ের জন্য আরও সাধারণ কৌশল এখানে রয়েছে:
declare @x int = 123 -- value to be padded
declare @width int = 25 -- desired width
declare @pad char(1) = '0' -- pad character
select right_justified = replicate(
@pad ,
@width-len(convert(varchar(100),@x))
)
+ convert(varchar(100),@x)
তবে, আপনি যদি নেতিবাচক মানগুলি নিয়ে কাজ করছেন এবং শীর্ষস্থানীয় জিরোগুলির সাথে প্যাডিং করছেন তবে এটি, বা অন্য কোনও প্রস্তাবিত কৌশল কার্যকর হবে না। আপনি দেখতে পাবেন এমন কিছু পাবেন:
00-123
[সম্ভবত আপনি যা চেয়েছিলেন তা নয়]
সুতরাং ... আপনাকে কিছু অতিরিক্ত হুপ দিয়ে যেতে হবে এখানে একটি পদ্ধতির যা সঠিকভাবে নেতিবাচক সংখ্যার ফর্ম্যাট করবে:
declare @x float = -1.234
declare @width int = 20
declare @pad char(1) = '0'
select right_justified = stuff(
convert(varchar(99),@x) , -- source string (converted from numeric value)
case when @x < 0 then 2 else 1 end , -- insert position
0 , -- count of characters to remove from source string
replicate(@pad,@width-len(convert(varchar(99),@x)) ) -- text to be inserted
)
একটি নোট করা উচিত যে convert()
কলগুলি [n]varchar
কাটা সঙ্গে রূপান্তরিত ফলাফল ধরে রাখতে যথেষ্ট দৈর্ঘ্য নির্দিষ্ট করতে হবে।