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

तालिका में शामिल होने के array_agg के लिए [] के बजाय पोस्टग्रेज रिटर्न [शून्य]

एक अन्य विकल्प हो सकता है array_remove(..., NULL) (9.3 में पेश किया गया ) अगर tags.tag है NOT NULL (अन्यथा आप NULL रखना चाहेंगे सरणी में मान, लेकिन उस स्थिति में, आप एक मौजूदा NULL . के बीच अंतर नहीं कर सकते टैग और एक NULL LEFT JOIN के कारण टैग ):

SELECT objects.*,
     array_remove(array_agg(tags.tag), NULL) AS tags,
FROM objects
LEFT JOIN taggings ON objects.id = taggings.object_id
LEFT JOIN tags ON tags.id = taggings.tag_id

यदि कोई टैग नहीं मिलता है, तो एक खाली सरणी लौटा दी जाती है।



  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. CURRENT_TIMESTAMP मिलीसेकंड में

  3. डिबग कैसे करें:आंतरिक त्रुटि वर्तमान लेनदेन निरस्त कर दिया गया है, लेनदेन ब्लॉक के अंत तक आदेशों को नजरअंदाज कर दिया गया है

  4. पोस्टग्रेज में गतिशील एसक्यूएल क्वेरी

  5. डेटाबेस में भंडारण वर्ष