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

Oracle XE 11.2 . में PostgreSQL के array_agg के समतुल्य

जब तक आप आउटपुट को एक सरणी (या संग्रह) के रूप में सहेजने के लिए संग्रहीत प्रक्रिया में इसका उपयोग नहीं कर रहे हैं, LISTAGG के साथ एक क्वेरी पर्याप्त होना चाहिए और समान आउटपुट देता है।

select ID , LISTAGG(Category,',') WITHIN GROUP ( ORDER BY ID ) Categories
FROM yourtable GROUP BY ID;

ऑरैकल में, हमारे पास array_agg . जैसा सीधा रूपांतरण फ़ंक्शन नहीं है . हालांकि, आप एक उपयोगकर्ता-परिभाषित संग्रह प्रकार बना सकते हैं, फिर CAST . का उपयोग करें और COLLECT इसे NESTED TABLE . में बदलने का कार्य करता है वही वांछित आउटपुट प्राप्त करने के लिए।

सबसे पहले, एक संग्रह बनाएं TYPE

create or replace TYPE categorytype as TABLE OF VARCHAR2(20);

अब, इस क्वेरी को चलाना string_agg . का उपयोग करने के बराबर है या LISTAGG , हालांकि categories एक सरणी या संग्रह है , एक स्ट्रिंग के बजाय।

select id, CAST ( COLLECT(Category) as categorytype ) categories
FROM yourtable group by id;

| ID | CATEGORIES |
|----|------------|
|  1 |  Cat1,Cat2 |
|  2 |  Cat3,Cat4 |

डेमो



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres . के लिए सर्वर से कनेक्ट करने में असमर्थ

  2. Mrjob और Hadoop के साथ पोस्टग्रेस्क्ल डेटाबेस को कैसे पॉप्युलेट करें?

  3. एक एंड्रॉइड ऐप के लिए कनेक्शन पूलिंग जो पोस्टग्रेस्क्ल डीबी से जुड़ता है

  4. पोस्टग्रेएसक्यूएल पीएल/पायथन:वर्चुअलएन्व में संग्रहीत प्रक्रिया को कॉल करें

  5. PostgreSQL के साथ नेस्टेड JSONB सरणियों के अंदर की वस्तुओं को हटाएं