जब अलग -अलग मानों वाले एक कॉलम का सामना किया जाता है,
]
आईडी | elem | एन.आर.
--- -----------
1 | ab | 1
1 | सीडी | 2
1 | efg | 3
1 | हाय | 4
2 | जेके | 1
...
myTable
id | elements
--- ------------
1 |ab,cd,efg,hi
2 |jk,lm,no,pq
3 |rstuv,wxyz
select id, unnest(string_to_array(elements, ',')) AS elem
from myTable
id | elem
--- -----
1 | ab
1 | cd
1 | efg
1 | hi
2 | jk
...
]
]
Tbl t से लेफ्ट जॉइन लेटरल स्ट्रिंग_टो_टैबल (T.Elements, ',', ') के साथ एक (elem, nr) के रूप में सही
id | elem | nr
--- ------ ---
1 | ab | 1
1 | cd | 2
1 | efg | 3
1 | hi | 4
2 | jk | 1
...
]
]
टी के रूप में tbl से
लेफ्ट लेटरल अनावश्यक (string_to_array (t.elements, ',', ')) के साथ एक (elem, nr) के रूप में सही
]
]
के साथ
सादगी के लिए, डिफ़ॉल्ट कॉलम नाम का उपयोग किया जा सकता है:
TBL से, अनावश्यक (ARR) ordinality A
SELECT t.id, a.elem, a.nr
FROM tbl t
LEFT JOIN LATERAL string_to_table(t.elements, ',') WITH ORDINALITY AS a(elem, nr) ON true
]
]
से (चयन करें, regexp_split_to_table (तत्व, ',') tbl से elem के रूप में) t ] वर्तमान व्यवहार कार्यान्वयन विवरण का परिणाम है।
]
के लिए
वास्तविक सरणी
SELECT t.id, a.elem, a.nr
FROM tbl AS t
LEFT JOIN LATERAL unnest(string_to_array(t.elements, ',')) WITH ORDINALITY AS a(elem, nr) ON true
]
] f_unnest_ord :
]
रिटर्न सेटऑफ रिकॉर्ड
भाषा SQL के रूप में अपरिवर्तनीय
'$ 1 का चयन करें [i], i - array_lower ($ 1,1) 1
Generate_series (array_lower ($ 1,1), array_upper ($ 1,1)) i '
से
संशोधित फ़ंक्शन इस प्रकार है:
SELECT t.id, a.elem, a.nr
FROM tbl t, unnest(string_to_array(t.elements, ',')) WITH ORDINALITY a(elem, nr)
से (
*, F_unnest_ord_idx (ARR) का चयन करें
से (
मान
(1, '{ए, बी, सी}' :: पाठ []) - के लिए छोटा: '[1: 3] = {ए, बी, सी}
, (2, '[5: 7] = {ए, बी, सी}')
, (3, '[-9: -7] = {ए, बी, सी}')
) टी (आईडी, गिरफ्तारी)
) उप
SELECT t.id, a.elem, a.nr
FROM tbl t, unnest(t.arr) WITH ORDINALITY a(elem, nr)
आईडी | गिरफ्तारी | वैल | अध्यादेश | आयोजक
---- ----------------- ----- ------------ -----
1 | {a, b, c} | a | 1 | 1
1 | {a, b, c} | बी | 2 | 2
1 | {a, b, c} | सी | 3 | 3
2 | [५: 7] = {ए, बी, सी} | a | 1 | 5
2 | [५: 7] = {ए, बी, सी} | बी | 2 | 6
2 | [५: 7] = {ए, बी, सी} | सी | 3 | 7
3 | [-9: -7] = {ए, बी, सी} | a | 1 | -9
3 | [-9: -7] = {ए, बी, सी} | बी | 2 | -8
3 | [-9: -7] = {ए, बी, सी} | सी | 3 | -7
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3