अगर आप text_pattern_ops के साथ इंडेक्स बना रहे हैं, तो PostgreSQL ऐसा करेगा। ऑपरेटर, या यदि आप C कोलेशन का उपयोग कर रहे हैं।
यदि आप कुछ यादृच्छिक अन्य संयोजन का उपयोग कर रहे हैं, तो PostgreSQL इसके बारे में कुछ भी नहीं निकाल सकता है। इसे सामान्य "en_US.utf8" संयोजन में देखें।
select * from (values ('03.000221.1'), ('03.0002212'), ('03.000221.3')) f(x) order by x;
x
-------------
03.000221.1
03.0002212
03.000221.3
जो तब स्वाभाविक रूप से आपकी क्वेरी के साथ इस गलत उत्तर की ओर ले जाता है:
select * from (values ('03.000221.1'), ('03.0002212'), ('03.000221.3')) f(id)
where ((id >= '03.000221.'::text) AND (id < '03.000221.Z'::text))
id
-------------
03.000221.1
03.0002212
03.000221.3