Postgres 9.3+ में LATERAL . का उपयोग करें शामिल हों:
SELECT s.token, flag
FROM tbl t, unnest(string_to_array(t.subject, ' ')) s(token)
WHERE flag = 2;
यह एक निहित LATERAL है जोड़ना। अगर unnest() कोई पंक्ति नहीं लौटाता (खाली या NULL subject ), परिणाम बिल्कुल भी पंक्ति नहीं होगा। LEFT JOIN unnest(...) i ON true . का उपयोग करें हमेशा tbl . से पंक्तियों को वापस करने के लिए . देखें:
- लेटरल जॉइन और PostgreSQL में सबक्वेरी में क्या अंतर है?
आप regexp_split_to_table() . का भी उपयोग कर सकते हैं , लेकिन यह आमतौर पर धीमा होता है क्योंकि नियमित अभिव्यक्ति मिलान की लागत कुछ अधिक होती है। संबंधित:
- एसक्यूएल टेक्स्ट फ़ील्ड में सबस्ट्रिंग वाली पंक्तियों का चयन करें
- तत्व संख्या के साथ PostgreSQL unnest()