بررسی تابع Stuff در Sql server
نحوه عملکرد این تابع :
کاربرد این تابع در رابطه با دستکاری رشته می باشد ، این تابع Stuff چهار پارامتر از ورودی دریافت می کند و بر اساس آنها یک سری تغییرات را بر روی رشته ورودی اعمال خواهد کرد .
تابع Stuff یک دنباله از کاراکتر ها را از رشته مقصد حذف کرده و رشته ای دیگر از کاراکتر ها را در محل مورد نظر درج می کند .
ابتدا Syntax این تابع را مشاهده نمایید :
1 |
STUFF( source_string, start, length, add_string ) |
این تابع بر روی ورژن های مختلف زیر قابل اجرا شدن می باشد :
1 |
SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 |
Source_string :
رشته مورد نظر ما می باشد (مقصد) .
Start :
محل شروع را جهت حذف کاراکتر ها را مشخص می کند که به تعداد پارامتر سوم رشته را حذف می کند.
Length :
به تعداد این پارامتر از مکان تعیین شده به بعد را حذف خواهد کرد . به طور مثال اگر شما مکان 2 را برای پارامتر دوم انتخاب کرده باشد و مقدار length سه باشد ، سه کاراکتر را از محل دوم به بعد حذف می کند .
add_String :
رشته ای می باشد که قصد داریم در مکان مشخص شده بجای کاراکتر های حذف شده قرار دهیم .
در زیر چند نمونه از نحوه کارکرد این تابع وجود دارد .
1 2 3 |
SELECT STUFF('Osman#', 6, 12, 'Rahimi') --Result:OsmanRahimi |
از کاراکتر ششم به بعد به تعداد 12 کاراکتر حذف خواهد کرد و بعد از آن از همان محل تعیین شده یعنی 6 متن دور را درج می کند .
ایندکس از 1 شروع می شود .
نکته : اگر از محل source به بعد به تعداد length وجود داشته باشد آن را حذف خواهد کرد ، در غیر اینصورت فقط تعدادی را که موجود است حذف خواهد کرد .
1 2 |
SELECT STUFF('SqlServer.com', 1, 9, 'Microsoft') 'STUFF RESULT' --Result:Microsoft.com |
مثال 3: تغییر فرمت HHMM مقدار Time به HH:MM
1 2 3 4 5 6 7 8 |
DECLARE @Time VARCHAR(10) SET @Time = '1030' SELECT STUFF(@Time, 3, 0, ':') AS [HH:MM] Output ------------ 10:30 |
1 2 |
SELECT STUFF('www.hozhan.ir', 1, 0, 'http://') 'STUFF RESULT' --Result:http://www.hozhan.ir |
1 2 |
SELECT STUFF('soft.com', 1, 0, 'Micro') 'STUFF RESULT' --Result:Microsoft.com |
تغییر مقدار تاریخ با فرمت MMDDYYYY به فرمت MM/DD/YYYY :
1 2 3 4 5 6 7 8 |
DECLARE @MMDDYYYY VARCHAR(10) SET @MMDDYYYY = '07042013' SELECT STUFF(STUFF(@MMDDYYYY, 3, 0, '/'), 6, 0, '/') AS [MM/DD/YYYY] Output ------------ 07/04/2013 |
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.