PATINDEX (PATINDEX)
تابع «PATINDEX» برای جستجوی الگو در متن است. «الگو (Pattern)» یعنی متن با وایلدکاردها. مثل جستجوی نام ها با حروف مبهم. نتیجه جای شروع الگو است. اگر پیداش نکند، عدد 0 می دهد.
تعریف و نکات کلیدی
PATINDEX() جای اولین وقوع الگو را برمی گرداند. جستجو حساس به حروف نیست. اولین کاراکتر رشته، شماره 1 است. الگو باید بین % و % باشد. وایلدکاردها: % هرچیز، _ یک حرف، [] یکی از موارد، [^] هرچیز به جز موارد.
سینتکس
PATINDEX('%pattern%', string);
مثال 1: یافتن کلمه مشخص
جای «schools» را در رشته پیدا کن.
SELECT
PATINDEX('%schools%', 'W3Schools.com');
مثال 2: ترکیب بخش های مبهم
بین s و com هرچیزی باشد، قبول است.
SELECT
PATINDEX('%s%com%', 'W3Schools.com');
مثال 3: مجموعه کاراکترها
اولین o یا l هرجا بود، موقعیت بده.
SELECT
PATINDEX('%[ol]%', 'W3Schools.com');
مثال 4: نبود الگو
اگر چیزی پیدا نشود، نتیجه 0 است.
SELECT
PATINDEX('%[z]%', 'W3Schools.com');
راهنمای عملی سریع
- رشته هدف را مشخص کن.
- الگو را با % در دو طرف بنویس.
- در صورت نیاز از [], _ یا [^] استفاده کن.
نکته: برای طول رشته از LEN کمک بگیر. برای بریدن بخش چپ از LEFT استفاده کن. همچنین این لینک درباره جستجوی الگو راهنمای مرتبطی کنار PATINDEX است.
جمع بندی سریع
- PATINDEX جای الگو را می دهد.
- حساس به حروف نیست.
- شماره گذاری از 1 شروع می شود.
- ندید، نتیجه 0 است.