خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
اضافه کردن کاراکتر به یک رشته در SQL Server
اگر از نرم افزارهایی مانند اوراکل و یا My SQL استفاده می کنید، توابعی مانند RPAD و LPAD را دارید که به شما امکان می دهد که در سمت چپ یا راست یک رشته، کاراکترهایی را اضافه کنید. در SQL Server این توابع را ندارید و برای اینکار، نیاز به اقدامات دیگری دارید. به عنوان مثال عدد 7 را در نظر بگیرید و حالا می خواهید آن را بصورت 007 نمایش دهید. در این پست روش های مختلفی را برای رسیدن به این مهم انجام می دهیم.
7 مشخص می کند که نتیجه نهایی (بعد از اضافه شدن صفرها) باید چند کاراکتر باشد.
حتی اگر 000 را به 00 تغییر دهید، نتیجه همان خواهد شد.
در غیر این صورت ما به این نتیجه می رسیم:
تابع REPLICATE مانع از درج چندباره 0 یا هر کاراکتر دیگری به عنوان پارامتر ورودی می شود.
در اینجا ما از تابع REPLACE در رابطه با تابع STR برای تبدیل یک عدد به رشته ای با طول خاص استفاده می کنیم، سپس هر کاراکتر Space را به صفر تبدیل می کنیم.
در مثال های بالا، اگر طول رشته خروجی را کوتاه وارد می کردیم، خروجی یک مقدار کوتاه و متناسب با همان مقداری که به تابع پاس داده شده بود، نمایش داده می شود ولی در اینجا اگر اینکار را کنید، * نمایش داده می شود. لطفا به مثال زیر دقت کنید:
Use the RIGHT() Function
در گام نخست از تابع RIGHT استفاده می کنیم که سمت راست رشته را پس از افزودن صفر های مورد نظر بر میگرداند. لطفا به مثال زیر دقت کنید:SELECT RIGHT('000' + '1234', 7);
0001234
7 مشخص می کند که نتیجه نهایی (بعد از اضافه شدن صفرها) باید چند کاراکتر باشد.
Reducing the Length
اگر عدد 7 را کاهش دهید و مثلا عدد 6 قرار دهید، حتی اگر کوئری فوق را به همین صورت اجرا کنیدف باز هم طول رشته از 6 تجاوز نمی کند و فقط به تعدادی از 0 استفاده می کند تا طول رشته به 6 کاراکتر برسد:حتی اگر 000 را به 00 تغییر دهید، نتیجه همان خواهد شد.
Increasing the Length
اما اگر بخواهید طول رشته را افزایش دهید، باید اطمینان حاصل کنید که به تعداد کافی 0 به تابع پاس داده باشید.SELECT RIGHT('000000' + '1234', 10);
0000001234
در غیر این صورت ما به این نتیجه می رسیم:
SELECT RIGHT('000' + '1234', 10);
0001234
Cutting the Number Short
همچنین توجه داشته باشید که اگر برای طول رشته خروجی، طول مناسب را درج نکنید، نتیجه درستی در خروجی دریافت نخواهید کرد و طول رشته خروجی به اندازه مقداری است که به تابع پاس داده اید. در نظر داشته باشید که از تابع RIGHT استفاده می کنید و از سمت راست کاراکترها نمایش داده می شوند. لطفا به مثال زیر توجه کنید:SELECT RIGHT('000' + '1234', 2);
34
Use a Combination of RIGHT() and REPLICATE()
این روش تقریباً همان روش قبلی است ، با این تفاوت که فقط سه صفر را با تابع REPLICATE جایگزین می کنیم:SELECT RIGHT(REPLICATE('0', 3) + '1234', 7);
0001234
تابع REPLICATE مانع از درج چندباره 0 یا هر کاراکتر دیگری به عنوان پارامتر ورودی می شود.
Use a Combination of REPLACE() and STR()
این روش از زاویه کاملا متفاوتی نسبت به روشهای قبلی به موضوع نگاه می کند:SELECT REPLACE(STR('1234', 6),' ','0');
001234
در اینجا ما از تابع REPLACE در رابطه با تابع STR برای تبدیل یک عدد به رشته ای با طول خاص استفاده می کنیم، سپس هر کاراکتر Space را به صفر تبدیل می کنیم.
در مثال های بالا، اگر طول رشته خروجی را کوتاه وارد می کردیم، خروجی یک مقدار کوتاه و متناسب با همان مقداری که به تابع پاس داده شده بود، نمایش داده می شود ولی در اینجا اگر اینکار را کنید، * نمایش داده می شود. لطفا به مثال زیر دقت کنید:
SELECT REPLACE(STR('1234', 2),' ','0');
**
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: