خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


24. استفاده از تابع CHARINDEX برای پیدا کردن محل یک متن داخل متنی دیگر

24. استفاده از تابع CHARINDEX برای پیدا کردن محل یک متن داخل متنی دیگر
نویسنده : امیر انصاری
نرم افزار اس کیو ال سرور دارای توابع داخلی زیادی می باشد، هر چقدر بر روی این توابع بیشتر مسلط باشید، قدرت مانور شما در اسکریپت نویسی اس کیو ال بیشتر خواهد شد. امروز با یکی دیگر از توابع داخلی اس کیو ال سرور با نام CHARINDEX آشنا می شویم. کاربرد تابع CHARINDEX پیدا کردن موقعیت یک متن داخل یک متن دیگر می باشد.

سیستم یکپارچۀ سازمانی راهکار



تابع CHARINDEX سه پارامتر ورودی دارد، پارامتر اول متنی است که قرار است موقعیت آن یافت شود و برگردانده شود. پارامتر دوم متنی است که مورد جستجو قرار خواهد گرفت. پارامتر سوم هم موقعیت آغاز جستجو می باشد که به صورت پیش فرض مقدار 1 دارد، یعنی جستجو از اولین حرف موجود آغاز خواهد شد.

برای گذراندن این دوره آموزشی لازم است تا فایل بک آپ مربوط به دیتابیسی که مثالهای این دوره با آن دیتابیس ایجاد شده است را دانلود کنید و در محیط اس کیو ال سرور بازیابی نمایید.


مثالهایی از کاربرد تابع CHARINDEX در اس کیو ال سرور


برای درک بهتر کاربرد تابع CHARINDEX به مثالهای زیر توجه کنید و سعی کنید خودتان آنها را انجام بدهید.

SELECT CHARINDEX('ir','khoshamoz.ir',1)

24. استفاده از تابع CHARINDEX برای پیدا کردن محل یک متن داخل متنی دیگر
در این مثال متن "ir" در داخل متن "khoshamoz.ir" مورد جستجو قرار گرفته است. همانطور که می بینید، خروجی تابع عدد 11 می باشد. اگر از ابتدای متن "khoshamoz.ir" کاراکترها را یکی یکی شمارش کنید، در کاراکتر 11 به متن "ir" خواهید رسید.

به دو مثال زیر توجه کنید. در هر دو مثال ما حرف "o" را در متن "khoshamoz.ir" مورد جستجو قرار داده ایم. تفاوت این دو مثال در اینست که در اولی از موقعیت 1 جستجو را آغاز کرده ایم و در دومی از موقعیت 4 جستجو را آغاز کرده ایم. به خروجی ها و تفاوت آنها دقت کنید.

SELECT CHARINDEX('o','khoshamoz.ir',1)

24. استفاده از تابع CHARINDEX برای پیدا کردن محل یک متن داخل متنی دیگر
SELECT CHARINDEX('o','khoshamoz.ir',4)

24. استفاده از تابع CHARINDEX برای پیدا کردن محل یک متن داخل متنی دیگر
در دستور زیر با استفاده از تابع CHARINDEX موقعیت حرف D را در داخل فیلد lastname مورد جستجو قرار داده ایم و خروجی آن را در ستونی با نام مستعار D_Position نمایش داده ایم. مواردی که عدد 0 را نشان می دهد به این معنا می باشد که حرف D در آنجا یافت نشده است.

SELECT empid, firstname, lastname
,CHARINDEX('D', lastname, 1) AS D_Position
FROM HR.Employees;

24. استفاده از تابع CHARINDEX برای پیدا کردن محل یک متن داخل متنی دیگر

آموزش قبلی : 23. استفاده از دستور Substring و استخراج بخشی از متن توسط آن

آموزش بعدی : 25. استفاده از تابع LEN برای پیدا کردن طول یک متن



نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.