استخراج الأرقام من النصوص في SQL: استعلام فعّال لتحقيق هذا الهدف
فيما يخص طلبك، يمكنني مساعدتك في إنشاء استعلام SQL يلبي متطلباتك. يبدو أن الهدف هو استخراج الأرقام فقط من القيم في العمود A وترك الصفوف التي لا تحتوي على أي رقم بشكل فارغ.
لتحقيق ذلك، يمكنك استخدام وظائف النصوص والتعبيرات العادية في SQL. الاستعلام التالي يظهر كيف يمكن تنفيذ هذا:
-
إنشاء UUID من النوع 5 في Java13/04/2024
-
تخصيص Pylint في Python: دليل شامل31/01/2024
sqlSELECT
CASE
WHEN REGEXP_CONTAINS(column_a, '\\d') THEN
REGEXP_REPLACE(column_a, '[^0-9]', '|')
ELSE
''
END AS modified_column_a
FROM your_table;
في هذا الاستعلام، يتم استخدام REGEXP_CONTAINS
لفحص ما إذا كانت القيم في العمود A تحتوي على أي رقم. إذا كانت الإجابة نعم، يتم استخدام REGEXP_REPLACE
لاستبدال أي شيء غير رقم برمز الفاصلة العمودية ‘|’.
توفير قيمة فارغة عندما لا تحتوي الصفوف على أي رقم يتم تحقيقه باستخدام التعبير الشرطي CASE
.
يرجى استبدال “your_table” بالاسم الصحيح للجدول الذي يحتوي على البيانات الخاصة بك.
هذا الاستعلام يعتمد على استخدام نظام قواعد البيانات الذي يدعم تلك الدوال والتعبيرات.
المزيد من المعلومات
في هذا الاستعلام، تم استخدام وظائف REGEXP_CONTAINS
وREGEXP_REPLACE
التي تتيحها اللغة البرمجية SQL. دعني أوضح بعض المزيد من التفاصيل حول الاستعلام:
-
REGEXP_CONTAINS(column_a, '\\d')
: تقوم هذه الوظيفة بفحص ما إذا كانت القيم في العمود A تحتوي على أي رقم أو لا. تستخدم “\d” للتعبير عن أي رقم. -
REGEXP_REPLACE(column_a, '[^0-9]', '|')
: إذا كان العمود يحتوي على أي رقم، يقوم هذا الجزء من الاستعلام باستخدامREGEXP_REPLACE
لاستبدال أي شيء غير رقم برمز الفاصلة العمودية ‘|’. هنا يتم استخدام ‘[^0-9]’ لتعبير عن أي شيء غير رقم. -
CASE
: يتم استخدام التعبير الشرطي CASE لإعادة قيمة فارغة إذا لم تحتوي القيمة على أي رقم.
باختصار، يقوم هذا الاستعلام بتحويل قيم العمود A إلى سلسلة جديدة حيث يتم فصل الأرقام باستخدام رمز الفاصلة العمودية ‘|’. إذا لم يكن هناك أي رقم في القيمة، يتم ترك الخلية فارغة. يمكن تكامل هذا الاستعلام بسهولة في إجراءات مخزنة أو تضمينه في التطبيق البرمجي الخاص بك.