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

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

تابع CHARINDEX سه پارامتر ورودی دارد، پارامتر اول متنی است که قرار است موقعیت آن یافت شود و برگردانده شود. پارامتر دوم متنی است که مورد جستجو قرار خواهد گرفت. پارامتر سوم هم موقعیت آغاز جستجو می باشد که به صورت پیش فرض مقدار 1 دارد، یعنی جستجو از اولین حرف موجود آغاز خواهد شد.
برای درک بهتر کاربرد تابع CHARINDEX به مثالهای زیر توجه کنید و سعی کنید خودتان آنها را انجام بدهید.
در این مثال متن "ir" در داخل متن "khoshamoz.ir" مورد جستجو قرار گرفته است. همانطور که می بینید، خروجی تابع عدد 11 می باشد. اگر از ابتدای متن "khoshamoz.ir" کاراکترها را یکی یکی شمارش کنید، در کاراکتر 11 به متن "ir" خواهید رسید.
به دو مثال زیر توجه کنید. در هر دو مثال ما حرف "o" را در متن "khoshamoz.ir" مورد جستجو قرار داده ایم. تفاوت این دو مثال در اینست که در اولی از موقعیت 1 جستجو را آغاز کرده ایم و در دومی از موقعیت 4 جستجو را آغاز کرده ایم. به خروجی ها و تفاوت آنها دقت کنید.
در دستور زیر با استفاده از تابع CHARINDEX موقعیت حرف D را در داخل فیلد lastname مورد جستجو قرار داده ایم و خروجی آن را در ستونی با نام مستعار D_Position نمایش داده ایم. مواردی که عدد 0 را نشان می دهد به این معنا می باشد که حرف D در آنجا یافت نشده است.
آموزش قبلی : 23. استفاده از دستور Substring و استخراج بخشی از متن توسط آن
آموزش بعدی : 25. استفاده از تابع LEN برای پیدا کردن طول یک متن

تابع CHARINDEX سه پارامتر ورودی دارد، پارامتر اول متنی است که قرار است موقعیت آن یافت شود و برگردانده شود. پارامتر دوم متنی است که مورد جستجو قرار خواهد گرفت. پارامتر سوم هم موقعیت آغاز جستجو می باشد که به صورت پیش فرض مقدار 1 دارد، یعنی جستجو از اولین حرف موجود آغاز خواهد شد.
برای گذراندن این دوره آموزشی لازم است تا فایل بک آپ مربوط به دیتابیسی که مثالهای این دوره با آن دیتابیس ایجاد شده است را دانلود کنید و در محیط اس کیو ال سرور بازیابی نمایید.
مثالهایی از کاربرد تابع CHARINDEX در اس کیو ال سرور
برای درک بهتر کاربرد تابع CHARINDEX به مثالهای زیر توجه کنید و سعی کنید خودتان آنها را انجام بدهید.
SELECT CHARINDEX('ir','khoshamoz.ir',1)

در این مثال متن "ir" در داخل متن "khoshamoz.ir" مورد جستجو قرار گرفته است. همانطور که می بینید، خروجی تابع عدد 11 می باشد. اگر از ابتدای متن "khoshamoz.ir" کاراکترها را یکی یکی شمارش کنید، در کاراکتر 11 به متن "ir" خواهید رسید.
به دو مثال زیر توجه کنید. در هر دو مثال ما حرف "o" را در متن "khoshamoz.ir" مورد جستجو قرار داده ایم. تفاوت این دو مثال در اینست که در اولی از موقعیت 1 جستجو را آغاز کرده ایم و در دومی از موقعیت 4 جستجو را آغاز کرده ایم. به خروجی ها و تفاوت آنها دقت کنید.
SELECT CHARINDEX('o','khoshamoz.ir',1)

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

در دستور زیر با استفاده از تابع CHARINDEX موقعیت حرف D را در داخل فیلد lastname مورد جستجو قرار داده ایم و خروجی آن را در ستونی با نام مستعار D_Position نمایش داده ایم. مواردی که عدد 0 را نشان می دهد به این معنا می باشد که حرف D در آنجا یافت نشده است.
SELECT empid, firstname, lastname
,CHARINDEX('D', lastname, 1) AS D_Position
FROM HR.Employees;
,CHARINDEX('D', lastname, 1) AS D_Position
FROM HR.Employees;

آموزش قبلی : 23. استفاده از دستور Substring و استخراج بخشی از متن توسط آن
آموزش بعدی : 25. استفاده از تابع LEN برای پیدا کردن طول یک متن
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: