تابع CHARINDEX در SQL
تابع CHARINDEX:
این تابع مکان رخداد یک رشته(expression1) در داخل رشته دیگر(expression2) را برمی گرداند.
نحوه استفاده:
پارامترها:
پارامتر | توضیح |
---|---|
expression1 |
یک عبارت رشته ای که مورد جستجو قرار می گیرد. expression1 به 8000 کاراکتر محدود می شود. |
expression2 |
یک عبارت رشته ای که مقدار expression1 در آن جستجو می شود. |
start_location |
یک عبارت عددی که مکان شروع جستجو در عبارت دوم را مشخص می کند.(اختیاری است) |
نوع داده خروجی(Return Type):
اگر عبارت دوم یکی از انواع زیر باشد، داده خروجی از نوع bigint خواهد بود در غیر اینصورت int
varchar(max) , nvarchar(max) , varbinary(max)
تذکر
1- اگر هر کدام از پارامترهای expression1 یا expression2 از انواع داده یونیکد باشد (nvarchar یا nchar) و دیگری نباشد، در این صورت دیگری نیز به نوع یونیکد تبدیل خواهد شد. تابع CHARINDEX را نمی توان با نوع های text و یا ntext و image بکار برد.
2- اگر هر کدام از پارامترهای expression1 یا expression2 خالی باشد، در این صورت CHARINDEX مقدار NULL را برخواهد گرداند البته اگر سطح compatibility پایگاه داده روی 70 یا بالاتر تنظیم شده باشد. اگر این مقدار روی 65 یا پایین تر تنظیم شده باشد، در صورتی که هر دو پارامتر NULL باشد CHARINDEX مقدار NULL برمی گرداند.
3- اگر expression1 در داخل expression2 پیدا نشد، تابع CHARINDEX مقدار 0 را برمی گرداند.
4- تابع CHARINDEX مقایسه ها را براساس Collation ورودی انجام می دهد. برای انجام یک مقایسه براساس یک Collation تعریف شده می توانید از تابع COLLATE استفاده کنید.
5- مکان کاراکتر اول را 1 در نظر بگیرید نه 0 ...!
مثال: در مثال زیر، مکان رخداد عبارت "bicycle" در متغیر "document@" برگدانده می شود:
set @document = 'Reflectors are vital safety' +
' components of your bicycle.'
SELECT CHARINDEX('bicycle', @document) as result
GO
نتیجه به شکل زیر خواهد بود :
result |
---|
48 |
برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه داده SQLServer کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 18253