بررسی تابع Stuff در Sql server

نحوه عملکرد این تابع :
کاربرد این تابع در رابطه با دستکاری رشته می باشد ، این تابع Stuff چهار پارامتر از ورودی دریافت می کند و بر اساس آنها یک سری تغییرات را بر روی رشته ورودی اعمال خواهد کرد .
تابع Stuff یک دنباله از کاراکتر ها را از رشته مقصد حذف کرده و رشته ای دیگر از کاراکتر ها  را   در محل مورد نظر درج می کند .
ابتدا Syntax این تابع را مشاهده نمایید :

STUFF( source_string, start, length, add_string )


این تابع بر روی ورژن های مختلف زیر قابل اجرا شدن می باشد : 

SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005

Source_string :
رشته مورد نظر ما می باشد (مقصد) .
Start :
محل شروع را جهت حذف کاراکتر ها را مشخص می کند که به تعداد پارامتر سوم رشته را حذف می کند.
Length :
به تعداد این پارامتر از مکان تعیین شده به بعد را حذف خواهد کرد . به طور مثال اگر شما مکان 2 را برای پارامتر دوم انتخاب کرده باشد و مقدار length  سه باشد ، سه کاراکتر را از محل دوم به بعد حذف می کند .
add_String :
رشته ای می باشد که قصد داریم در مکان مشخص شده بجای کاراکتر های حذف شده قرار دهیم . 

در زیر چند نمونه از نحوه کارکرد این تابع وجود دارد .

SELECT STUFF('Osman#', 6, 12, 'Rahimi')

--Result:OsmanRahimi

 از کاراکتر ششم به بعد به تعداد 12 کاراکتر حذف خواهد کرد و بعد از آن از همان محل تعیین شده یعنی 6 متن دور را درج می کند .

ایندکس از 1 شروع می شود .

نکته : اگر از محل source به بعد به تعداد length وجود داشته باشد آن را حذف خواهد کرد ، در غیر اینصورت فقط تعدادی را که موجود است حذف خواهد کرد .

SELECT STUFF('SqlServer.com', 1, 9, 'Microsoft') 'STUFF RESULT'
--Result:Microsoft.com

مثال 3: تغییر فرمت HHMM  مقدار Time به HH:MM

DECLARE @Time	VARCHAR(10)
SET @Time = '1030'

SELECT STUFF(@Time, 3, 0, ':') AS [HH:MM]
 
Output
------------
10:30

 

SELECT STUFF('www.hozhan.ir', 1, 0, 'http://') 'STUFF RESULT'
--Result:http://www.hozhan.ir

 

SELECT STUFF('soft.com', 1, 0, 'Micro') 'STUFF RESULT'
--Result:Microsoft.com

تغییر مقدار تاریخ با فرمت MMDDYYYY به فرمت MM/DD/YYYY :

DECLARE @MMDDYYYY		VARCHAR(10)
SET @MMDDYYYY = '07042013'

SELECT STUFF(STUFF(@MMDDYYYY, 3, 0, '/'), 6, 0, '/') AS [MM/DD/YYYY]
 
Output
------------
07/04/2013

توسط : عثمان رحیمی  1 ماه قبل ، چهارشنبه 20 خرداد 1394 ساعت 16:54  1  3149

نظر شما برای ما مهم است و به ما در بهبود سایت کمک میکند.


ارسال نظر
  • نام (اختیاری ) :
  • پست الکترونیک :
  • توضیحات :

مطالب مرتبط

نظرات خوانندگان

کاربر مهمان (صالحی)  در تاریخ : 4 ماه قبل ، دوشنبه 25 آبان 1394 ساعت 00:00

عالی بود.خیلی کمکم کرد.خیلی خیلی متشکرم