हम सेट-रिटर्निंग फ़ंक्शन unnest()
SELECT . में सूची जैसे राफेल सुझाता है
. यह पोस्टग्रेज 10 से पहले कॉर्नर केस की समस्याओं को प्रदर्शित करता था। देखें:
पोस्टग्रेज 9.3 के बाद से हम का भी उपयोग कर सकते हैं LATERAL
इसके लिए शामिल हों। यह सेट-रिटर्निंग फ़ंक्शंस को FROM . में डालने का क्लीनर, मानक-अनुपालन वाला तरीका है सूची में नहीं, SELECT . में सूची:
SELECT name, value
FROM tbl, unnest(values) value; -- implicit CROSS JOIN LATERAL
एक सूक्ष्म अंतर:यह खाली / NULL values के साथ पंक्तियों को छोड़ देता है परिणाम से unnest() . के बाद से रिटर्न कोई पंक्ति नहीं , जबकि इसे FROM . में NULL मान में बदल दिया जाता है सूची और वैसे भी लौटा। 100% समकक्ष क्वेरी है:
SELECT t.name, v.value
FROM tbl t
LEFT JOIN unnest(t.values) v(value) ON true;
देखें: