كيفية استخراج الأرقام من نطاقات سلسلة SQL لإجراء مقارنات سهلة

التعامل مع البيانات في SQL غالبًا ما يقدم تحديات فريدة، خاصة عند التعامل مع الأعمدة التي تحتوي على نطاقات النسبة المئوية المُنسقة كسلاسل. إذا كنت قد واجهت موقفًا تحتاج فيه إلى استخراج الرقم الحد الأدنى من مثل هذه السلاسل، فأنت لست وحدك. ستوجهك هذه المدونة خلال حل لتحويل هذه السلاسل إلى قيم عددية قابلة للاستخدام، مما يسمح بإجراء مقارنات سهلة في استعلامات SQL الخاصة بك.

المشكلة: استخراج الأرقام من نطاقات السلاسل

تخيل أن لديك عمودًا في قاعدة بيانات SQL الخاصة بك يحتوي على نطاقات النسبة المئوية بالتنسيقات التالية:

  • '<5%'
  • '5-10%'
  • '10-15%'
  • '95-100%'

عند إجراء الاستعلامات، قد ترغب في مقارنة هذه النسب المئوية مع عتبة عددية محددة. ومع ذلك، نظرًا لكون البيانات مخزنة كسلاسل نصية، فإن استخراج الرقم الأول فقط للمقارنة يمكن أن يكون معقدًا جدًا. قد لا تنجح المحاولات مع مختلف دوال السلاسل في إعطاء نتائج متسقة عبر جميع الإدخالات، مما يؤدي إلى الارتباك والأخطاء في تحليل البيانات.

الحل: استخراج الرقم الأول باستخدام SQL

لتحويل هذه السلاسل النسبية إلى أرقام، يمكننا استخدام دوال معالجة السلاسل في SQL. أدناه هو حل تم اختباره يقوم باستخراج الرقم الحد الأدنى من سلاسل النطاقات النسبية.

مثال على استعلام SQL

إليك استعلام SQL الذي يحقق ذلك:

SELECT 
    substring(
        replace(interest , '<',''), 
        patindex('%[0-9]%', replace(interest , '<','')), 
        patindex('%[^0-9]%', replace(interest, '<','')) - 1
    ) 
FROM 
    table1

تحليل استعلام SQL

  1. دالة الاستبدال:

    • الجزء replace(interest, '<', '') من الاستعلام يزيل رموز الأقل من من السلسلة، مما يحضرها للاستخراج.
  2. دوال فهرسة النمط:

    • patindex('%[0-9]%', ...) يعثر على موضع أول حرف رقمي في السلسلة المعدلة. يساعدنا ذلك في تحديد مكان بدء الرقم.
    • patindex('%[^0-9]%', ...) تعثر على موضع أول حرف غير رقمي يلي الرقم، مما يحدد نقطة النهاية للاستخراج.
  3. دالة السلسلة الفرعية:

    • أخيرًا، تُستخدم دالة substring لاستخراج الجزء المناسب من السلسلة، وهو الرقم النسبة المئوية الحد الأدنى.

الاختبار والتحسين

تم اختبار هذا الاستعلام SQL وقد وُجد أنه يعمل بدقة لمختلف تنسيقات السلاسل الممكنة. ومع ذلك، قد تفكر في تحسين الاستعلام أكثر من أجل الأداء حسب حجم مجموعة البيانات الخاصة بك.

الخاتمة

باتباع الخطوات الموضحة في هذه المدونة، يمكنك تحويل سلاسل نطاق النسبة المئوية بكفاءة إلى قيم عددية قابلة للمقارنة. هذا لا يعمل فقط على تسهيل تحليل بياناتك ولكنه يعزز أيضًا قدرتك على إجراء استعلامات معقدة.

إذا كنت غالبًا تواجه تحديات مماثلة في معالجة البيانات في SQL، احتفظ بهذه التقنية في مجموعة أدواتك للرجوع إليها سريعًا. استعلامات سعيدة!