دالة SQL Server PATINDEX

Dalt Sql Server Patindex



يهدف هذا البرنامج التعليمي إلى إرشادك في فهم كيفية استخدام وظيفة PATINDEX في SQL Server. تتيح لك هذه الوظيفة تحديد موضع البداية لنمط ما في تعبير إدخال معين.

وظيفة SQL Server Patindex ()

يحدد مقتطف التعليمات البرمجية التالي بناء جملة الدالة PATINDEX () في SQL Server:







باتينديكس ( '٪نمط٪' ، التعبير )



يتم استكشاف الحجج أدناه:



  1. نمط - تحدد هذه الوسيطة تعبير الحرف الذي سيتم البحث عنه في التعبير. تدعم هذه القيمة أحرف البدل مثل٪ و _. ستقوم الوظيفة بتطبيق أحرف البدل بشكل مشابه لعامل LIKE. يمكنك فقط تقديم 8000 حرف كحد أقصى.
  2. التعبير - يحدد هذا التعبير حيث يتم البحث عن النمط. يمكن أن تكون قيمة حرفية أو عمود.

ستعيد الوظيفة بعد ذلك قيمة عدد صحيح تشير إلى موضع البداية لنمط التكرار الأول في التعبير. إذا لم يتم العثور على النمط في التعبير ، ترجع الدالة 0.





إذا كانت أي من الوسيطات المطلوبة NULL ، فستقوم الدالة تلقائيًا بإرجاع NULL.

مثال على الاستخدام

توضح الأمثلة التالية كيفية استخدام دالة patindex () في SQL Server.



مثال 1 - الاستخدام الأساسي

يوجد أدناه عرض توضيحي للاستخدام الأساسي لوظيفة patindex ().

تحديد باتينديكس ( '٪ بت٪' و 'https://geekbits.io' ) كما نقاط البيع؛

يجب أن يعيد هذا موضع البداية للنمط الموجود على النحو التالي:

نقاط البيع
13

مثال 2

في المثال أدناه ، نستخدم الدالة patindex () مع أحرف بدل متعددة.

تحديد باتينديكس ( '٪ g__k٪' و 'https://geekbits.io' ) كما نقاط البيع؛

في هذه الحالة ، يجب أن ترجع الدالة:

نقاط البيع
9

مثال 3 - استخدام وظيفة Patindex () ذات النمط المعقد

يمكننا أيضًا تمرير تعبير عادي معقد كنمط في وظيفة باتينديكس كما هو موضح:

تحديد باتينديكس ( '%[^ 0-9A-Za-z]%' و 'مرحبًا بك في Linuxhint !!' ) كما مباراة؛

نتيجة:

مباراة
واحد وعشرين

مثال 4 - استخدام وظيفة Patindex مع العمود

افترض أن لدينا جدولًا كما هو موضح أدناه:

يمكننا استخدام وظيفة patindex () للبحث عن نمط المطابقة في عمود اسم_المنتج كما هو موضح في الاستعلام أدناه:

تحديد اسم_المنتج ، الشركة المصنعة ، باتينديكس ( '٪ 2022٪' ، اسم المنتج ) مكان
من المنتجات

يجب أن يعيد هذا موضع نمط المطابقة كما هو موضح:

استنتاج

في هذا البرنامج التعليمي ، قمنا بتغطية أساسيات العمل مع وظيفة PATINDEX () في SQL Server.