في SQL يمكنك استخراج جزء من قيمة نصية. فربما يكون الموقع مخزّنًا بصيغة «المدينة، الولاية» وأنت تريد الولاية فقط.
ويُستخدم SUBSTR بهذه الصيغة: SUBSTR(اسم_العمود, الموضع, عدد_المحارف)
الموضع رقم يحدّد من أين يبدأ الجزء المستخرَج. فـ1 تعني المحرف الأول، و2 تعني المحرف الثاني، وهكذا. ويمكن أن يكون الموضع سالبًا، فتعدّ عندها من نهاية النص: -1 تعني المحرف الأخير، و-2 تعني ما قبل الأخير، وهكذا.
وعدد_المحارف اختياري؛ فإن لم تذكره امتدّ الجزء المستخرَج إلى «بقية النص».
وهذه بعض الأمثلة:
SUBSTR(name, 1, 5) هي أول 5 محارف من الاسم.
SUBSTR(name, -4) هي آخر 4 محارف من الاسم.
SELECT * FROM robots WHERE SUBSTR(name, -4) LIKE '20__'; طريقة أخرى لإرجاع كل الروبوتات التي صدرت بين 2000 و2099.
ملاحظة: في إصدارات أخرى من SQL يمكنك استخدام RIGHT لفعل ذلك.
هل يمكنك إرجاع كل الروبوتات الموجودة في NY؟