عند العمل مع قواعد بيانات سكل ، غالبا ما يكون من الضروري الحصول على القيم الواردة في حقل معين حتى حرف معين. على سبيل المثال ، قد يحتوي حقل يحتوي على اسم منتج على فئة منتج مفصولة برمز"/". قد نحتاج إلى الحصول على اسم الفئة فقط ، دون بقية السلسلة.
هناك وظيفة خاصة في سكل لهذه المهمة-فهرس فرعي (). يسمح لك بالحصول على سلسلة فرعية من حقل معين حتى فاصل معين. تحتوي الوظيفة على بناء الجملة التالي: مؤشر فرعي(سلسلة ، محدد ، عدد).
أين:
السلسلة هي الحقل الذي نريد الحصول على سلسلة فرعية منه;
محدد-الحرف الذي سيتم تقسيم الخط;
العد-عدد المحددات للحصول على السلسلة الفرعية.
على سبيل المثال ، إذا كان لدينا حقل باسم المنتج "الفئة / اسم المنتج" ، ونحتاج فقط إلى الحصول على اسم الفئة ، فيمكننا استخدام الاستعلام التالي:
حدد الفهرس الفرعي (اسم المنتج ، ' / ' ، 1) كفئة من المنتجات;
سيعرض هذا الاستعلام اسم الفئة فقط من حقل اسم المنتج.
- فهم المهمة
- باستخدام وظيفة الفهرس الفرعي
- باستخدام الوظيفة اليسرى
- استخدام التعبيرات العادية
- باستخدام وظيفة تحديد الموقع
- العمل مع المحددات
- سؤال وجواب
- كيف يمكنني الحصول على جميع القيم حتى الحرف الأول " - " في سكل?
- هل من الممكن الحصول على جميع القيم تصل إلى حرف معين في سكل?
- كيف يمكنني الحصول على الأحرف القليلة الأولى في سكل?
- هل هناك طريقة للحصول على القيم في سكل حتى الحرف الأخير" -"?
- كيف يمكنني الحصول على القيم في سكل تصل إلى أول 3 أحرف من" -"?
- كيف يمكنني الحصول على القيم في سكل تصل إلى حرف معين إذا كان الحرف يمكن أن يحدث عدة مرات في سلسلة?
فهم المهمة
في سكل ، هناك مهمة للحصول على قيم تصل إلى حرف معين في سلسلة. قد يكون هذا ضروريا ، على سبيل المثال ، لاستخراج اسم الملف من المسار الكامل إليه أو لفصل النص بواسطة فاصل معين.
.
- . للقيام بذلك ، سوف نقوم بتمرير سلسلة المصدر والحرف المطلوب أو سلسلة فرعية لذلك.
- للحصول على جميع الشخصيات تصل إلى هذا الموقف.
في المجموع ، للحصول على قيم تصل إلى حرف معين في سكل ، سوف نستخدم البناء التالي:
حدد سلسلة فرعية (اسم العمود ، 1 ، إنستر (اسم العمود ، 'الرمز المرغوب') - 1) كقيمة مستخرجة
من اسم_الجدول;
أين:
- هو اسم العمود الذي يحتوي على القيم الأصلية
- - الحرف أو السلسلة الفرعية التي يجب أن تؤخذ إليها القيم
- - اسم الجدول الذي يحتوي على بيانات القيمة المستخرجة
- - اسم العمود أو الاسم المستعار الذي سيحتوي على القيم المستخرجة
وهكذا ، من خلال الجمع بين هذه الوظائف والمشغلين في سكل ، يمكننا الحصول على قيم تصل إلى حرف معين في سلسلة ، والتي سوف تساعدنا على حل مشاكل مماثلة ومعالجة البيانات.
باستخدام وظيفة الفهرس الفرعي
تتيح لك وظيفة الفهرس الفرعي في سكل الحصول على سلسلة فرعية تصل إلى حرف معين أو تسلسل من الأحرف في سلسلة.
بناء جملة الوظيفة:
مؤشر فرعي (ستر ، ديليم ، كونت)
- شارع هو السلسلة التي يمكن من خلالها الحصول على سلسلة فرعية.
- ديليم هو حرف أو تسلسل الأحرف التي تريد الحصول على سلسلة فرعية.
- العد هو معلمة اختيارية تحدد عدد المرات التي يجب فيها إرجاع السلسلة الفرعية. إذا كان العد هو رقم موجب ، يتم إرجاع السلسلة الفرعية قبل ديليم ، إذا كان العد هو رقم سالب ، يتم إرجاع السلسلة الفرعية بعد آخر حدوث ديليم.
أمثلة على استخدام وظيفة الفهرس الفرعي:
- |مؤشر فرعي /
+-------------------+
/ العالم! |
+-------------------+
باستخدام الوظيفة اليسرى
وظيفة اليسار في سكل يسمح لك للحصول على سلسلة فرعية من سلسلة تحتوي على عدد محدد من الأحرف على اليسار. يكون هذا مفيدا إذا كنت بحاجة إلى استخراج قيم من عمود يصل إلى حرف معين أو تقسيم صف بحرف معين.
بناء جملة الدالة اليسرى كما يلي:
اليسار (سلسلة ، عدد الأحرف)
أين:
السلسلة-السلسلة المصدر التي يتم استخراج السلسلة الفرعية منها;
عدد الأحرف هو عدد الأحرف المراد استخراجها.
لنلق نظرة على مثال تحتاج فيه إلى استخراج اسم المستخدم قبل الحرف " @ " في عنوان بريد إلكتروني:
حدد اليسار (البريد الإلكتروني ، تشارندكس ('@'،البريد الإلكتروني) - 1) كاسم مستخدم
| من المستخدمين; | في هذا الطلب ، يتم استخدام الدالة اليسرى بالاشتراك مع الدالة تشارينديكس ، التي ترجع موضع الحرف " @ " في سلسلة البريد الإلكتروني. في هذه الحالة ، يتم طرح 1 من السلسلة الأصلية لاستبعاد الحرف "@" نفسه. |
|---|---|
| ستكون نتيجة تنفيذ الاستعلام عمود "اسم المستخدم" الذي يحتوي على أسماء المستخدمين حتى الحرف " @ " في عناوين البريد الإلكتروني. | يسمح لك استخدام الوظيفة اليسرى باستخراج سلاسل فرعية من سلاسل تصل إلى حرف معين أو عدد معين من الأحرف على اليسار. هذه ميزة مفيدة يمكن أن تكون مفيدة عند العمل مع البيانات في سكل. |
| استخدام التعبيرات العادية | التعبيرات العادية هي أداة قوية للعمل مع البيانات النصية. إنها تسمح لك بالعثور على السلاسل التي تتطابق مع أنماط معينة ومعالجتها. |
| في سكل ، يمكن استخدام التعبيرات العادية في مختلف المشغلين والوظائف ، مثل ريغكس_ليك ، ريغكس_سوبستر ، ريغكس_بريلاس وغيرها. تسمح لك بالبحث عن القيم في السلاسل التي تتطابق مع نمط معين. | مثال على استخدام التعبيرات العادية في سكل: |
وظيفة
الوصف
ريجكسب_مثل
يتحقق مما إذا كانت السلسلة تتطابق مع نمط معين
ريغ أكسب_سوبستر
يسترد جزء السلسلة الذي يطابق نمطا معينا
ريج أكسب_الاستبدال
يستبدل جزء السلسلة الذي يطابق نمطا معينا بالنص المحدد
مثال على استخدام ريجكسب_لايك:
حدد اسم العمود
من اسم_الجدول
حيث ريغكس_ليك (اسم العمود ، 'نمط');
في هذا المثال ، يتم تحديد جميع القيم من عمود اسم العمود التي تطابق التعبير العادي للنمط المحدد.
مثال على استخدام ريجكسب_سوبستر:
حدد ريجيكسب_سوبستر (اسم_ العمود ، 'نمط')
من اسم_الجدول;
| في هذا المثال ، يتم استخراج جزء القيمة من عمود اسم العمود الذي يتوافق مع نمط التعبير العادي المحدد. | مثال على استخدام ريغكسبلاس_: |
|---|---|
| حدد ريجيكسبليس_ (اسم_العمود ، 'نمط' ، 'استبدال') | من اسم_الجدول; |
في هذا المثال ، يتم استبدال جزء القيمة من عمود اسم العمود الذي يتوافق مع نمط التعبير العادي المحدد بنص الاستبدال المحدد.
- باستخدام التعبيرات العادية في سكل يسمح لك بمرونة وكفاءة معالجة البيانات النصية ، والعثور على واستخراج القيم اللازمة ، وكذلك إجراء تغييرات على السلاسل. ومع ذلك ، عند استخدام التعبيرات العادية ، يجب أن تكون حذرا وأن توفر جميع الخيارات الممكنة لمطابقة القالب لتجنب الأخطاء أو معالجة البيانات غير الصحيحة.
- باستخدام وظيفة تحديد الموقع
- في سكل ، يتم استخدام وظيفة تحديد موقع للعثور على موقف أول حدوث سلسلة فرعية في سلسلة. هذه هي وظيفة مفيدة جدا التي تسمح لك للحصول على القيم في سكل تصل إلى حرف معين. يتم استخدام بناء الجملة التالي للعمل مع وظيفة تحديد الموقع:
وظيفة
| الوصف | تحديد موقع (بحث ، سلسلة ، بداية) | يجد موضع التكرار الأول لسلسلة البحث في سلسلة السلسلة ، بدءا من موضع البداية. |
|---|---|---|
| تقبل وظيفة تحديد الموقع ثلاث معلمات: | بحث: السلسلة التي يمكن العثور عليها. | السلسلة: السلسلة للبحث فيها. |
| ابدأ: معلمة اختيارية توضح الموضع الذي تريد بدء البحث منه. القيمة الافتراضية هي 1. | باستخدام وظيفة تحديد الموقع ، يمكنك الحصول على قيم في سكل تصل إلى حرف معين. على سبيل المثال ، لنفترض أن لدينا الجدول التالي "المستخدمون": | معرف |
| الاسم | البريد الإلكتروني | 1 |
إيفان إيفانوف
2
| بيتر بتروف |
|---|
| [email protected] |
| 3 |
| آنا سيدوروفا |
للحصول على القيم في سكل حتى الحرف " @ "في حقل" البريد الإلكتروني " ، يمكنك استخدام وظيفة تحديد الموقع على النحو التالي:
حدد سلسلة فرعية (البريد الإلكتروني ، 1 ، (حدد موقع ('@'،البريد الإلكتروني) - 1)) كاسم مستخدم من المستخدمين;
- سيؤدي هذا الاستعلام إلى إرجاع النتيجة التالية:
- تتيح لك وظيفة الفهرس الفرعي استخراج سلسلة فرعية من سلسلة بيانات تصل إلى حرف أو فاصل معين. بناء الجملة هو كما يلي:
- مثال الاستخدام:
اسم المستخدم
| إيفان | بيتر |
|---|---|
| آنا | وهكذا ، باستخدام وظيفة تحديد موقع ، يمكنك بسهولة الحصول على القيم في سكل تصل إلى حرف معين. هذا مفيد جدا عندما تحتاج إلى معالجة واستخراج جزء من البيانات من صف في قاعدة البيانات. |
العمل مع المحددات
في سكل ، هناك عدة طرق للعمل مع المحددات في سلاسل البيانات. يمكن أن يكون هذا مفيدا عندما تحتاج إلى الحصول على قيم تصل إلى حرف أو فاصل معين.
باستخدام وظيفة الفهرس الفرعي
وظيفة
بناء الجملة
مؤشر فرعي
مؤشر فرعي (سلسلة ، فاصل ، كمية)
حدد مؤشر فرعي ('تفاح ، موز ، كرز' ، ' ، ' ، 2);
نتيجة لتنفيذ هذا الاستعلام ، سيتم استلام القيمة "تفاحة ، موز".
باستخدام أساليب سلسلة وطول وظائف إنستر
للعمل مع المحددات ، يمكنك استخدام أساليب سلسلة مثل فرعية ، يسار ، يمين ، وطول وظائف إنستر. باستخدام هذه الطرق ، يمكنك معالجة السلاسل والحصول على قيم تصل إلى حرف أو فاصل معين.
مثال الاستخدام:
حدد سلسلة فرعية ('التفاح والموز والكرز' ، 1 ، إنستر ('التفاح والموز والكرز'،'،') -1);
نتيجة لتنفيذ هذا الطلب ، سيتم استلام القيمة "تفاحة".
استخدام التعبيرات العادية
للعمل مع المحددات ، يمكنك أيضا استخدام التعبيرات العادية ، والتي تسمح لك بإجراء عمليات أكثر تعقيدا ومرونة مع النص. في سكل ، يمكنك استخدام ريغكس_بريلاس ، ريغكس_سوبستر وغيرها من المهام للعمل مع التعبيرات العادية.
مثال الاستخدام:
اختر ريجيكسب_استبدل ('تفاح ، موز ، كرز', '([^,]*),.*', '\1');
نتيجة لتنفيذ هذا الطلب ، سيتم استلام القيمة "تفاحة".
استخدم إحدى هذه الطرق اعتمادا على احتياجاتك وقدرات نظام إدارة قواعد البيانات الخاص بك.
سؤال وجواب
كيف يمكنني الحصول على جميع القيم حتى الحرف الأول " - " في سكل?
للقيام بذلك،يمكنك استخدام وظيفة الفهرس الفرعي. هنا مثال على طلب: حدد فهرس فرعي(اسم العمود ، ' - ' ، 1) من اسم الجدول;
هل من الممكن الحصول على جميع القيم تصل إلى حرف معين في سكل?
نعم ، هناك عدة طرق لتحقيق هذا الهدف في سكل. واحد منهم هو استخدام وظيفة الفهرس الفرعي. تحتاج إلى تحديد اسم العمود والحرف الذي تريد الحصول على القيم. هنا استعلام مثال: حدد فهرس فرعي(اسم العمود ، ' - ' ، 1) من اسم الجدول;