PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पोस्टग्रेज में कॉलम को कई पंक्तियों में विभाजित करें

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्तंभ प्रकार बदलें और शून्य नहीं सेट करें

  2. पोस्टग्रेस्क्ल ड्रॉप व्यू

  3. PostgreSQL में समूहीकृत LIMIT:प्रत्येक समूह के लिए पहली N पंक्तियाँ दिखाएं?

  4. प्रत्येक ग्रुप बाय ग्रुप में पहली पंक्ति का चयन करें?

  5. 3 मिलियन पंक्तियों के साथ PostgreSQL डेटाबेस पर धीमी सरल अद्यतन क्वेरी