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

PostgreSQL में समानांतर अननेस्ट () और सॉर्ट ऑर्डर

हां, यह पोस्टग्रेज की एक विशेषता है और समानांतर अननेस्टिंग गारंटीकृत है सिंक में रहने के लिए (जब तक सभी सरणियों में तत्वों की संख्या समान होती है)।
पोस्टग्रेज 9.4 समानांतर अननेस्ट के लिए एक स्वच्छ समाधान जोड़ता है:

  • समानांतर में कई सरणियों को अननेस्ट करें

परिणामी पंक्तियों के क्रम की गारंटी नहीं है, हालाँकि। वास्तव में, एक सरल कथन के साथ:

SELECT unnest(ARRAY[5,3,9]) AS id

पंक्तियों का परिणामी क्रम "गारंटीकृत" है, लेकिन पोस्टग्रेस कुछ भी दावा नहीं करता है। क्वेरी ऑप्टिमाइज़र पंक्तियों को ऑर्डर करने के लिए स्वतंत्र है क्योंकि यह तब तक फिट दिखता है जब तक ऑर्डर स्पष्ट रूप से परिभाषित नहीं होता है। अधिक जटिल प्रश्नों में इसका दुष्प्रभाव हो सकता है।

यदि आपके प्रश्न में दूसरी क्वेरी वह है जो आप वास्तव में चाहते हैं (अननेस्टेड सरणी तत्वों में एक अनुक्रमणिका संख्या जोड़ें), तो generate_subscripts() के साथ एक बेहतर तरीका है :

SELECT unnest(ARRAY[5,3,9]) AS id
     , generate_subscripts(ARRAY[5,3,9], 1) AS idx
ORDER  BY idx;

इस संबंधित उत्तर में विवरण:

  • postgreSQL के साथ सरणी आंतरिक अनुक्रमणिका तक कैसे पहुँचें?

आपकी रुचि WITH ORDINALITY . में होगी पोस्टग्रेज में 9.4 :

  • तत्व संख्या के साथ PostgreSQL unnest()

तब आप इसका उपयोग कर सकते हैं:

SELECT * FROM unnest(ARRAY[5,3,9]) WITH ORDINALITY tbl(id, idx);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLITE SQL डंप फ़ाइल को POSTGRESQL में बदलें

  2. यदि PostgreSQL के लिए मौजूद नहीं है तो डेटाबेस बनाएं सिमुलेट करें?

  3. कठपुतली के साथ PostgreSQL परिनियोजन और कॉन्फ़िगरेशन

  4. Postgres.app . के साथ मावेरिक्स में पीजी रत्न स्थापित नहीं कर सकता

  5. isnumeric () PostgreSQL के साथ