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()