यदि मैं array_agg
नामों को इकट्ठा करने के लिए उपयोग करता हूं, तो मुझे मेरे नाम अल्पविराम से अलग कर दिए जाते हैं, लेकिन अगर कोई null
मूल्य है, तो यह भी कुल में एक नाम के रूप में लिया जाता है। उदाहरण के लिए :
SELECT g.id,
array_agg(CASE WHEN g.canonical = 'Y' THEN g.users ELSE NULL END) canonical_users,
array_agg(CASE WHEN g.canonical = 'N' THEN g.users ELSE NULL END) non_canonical_users
FROM groups g
GROUP BY g.id;
यह ,Larry,Phil
सिर्फ के बजाय Larry,Phil
(मेरे 9.1.2 में, यह दिखाता है NULL,Larry,Phil
) लौटता है । के रूप में इस बेला में
इसके बजाय, यदि मैं उपयोग करता हूं, तो string_agg()
यह मुझे यहाँ की तरह केवल नाम (खाली कॉमा या नल के बिना) दिखाता है
समस्या यह है कि मैंने Postgres 8.4
सर्वर पर स्थापित किया है, और string_agg()
वहां काम नहीं करता है। क्या array_agg को string_agg () के समान काम करने का कोई तरीका है?