मुझे लगता है कि आप RETURNS SET
या RETURNS TABLE
खुद करना होगा।
अपडेट किया गया जवाब: का उपयोग कर PL/pgSQL:
pg=> CREATE OR REPLACE FUNCTION string_to_rows(text) RETURNS SETOF TEXT AS $$
DECLARE
elems text[];
BEGIN
elems := string_to_array($1, ' ');
FOR i IN array_lower(elems, 1) .. array_upper(elems, 1) LOOP
RETURN NEXT elems[i];
END LOOP;
RETURN;
END
$$ LANGUAGE 'plpgsql';
CREATE FUNCTION
pg=> SELECT "Column" FROM string_to_rows('how now brown cow') d("Column");
Column
--------
how
now
brown
cow
(4 rows)
मूल जवाब: का उपयोग कर पी एल/पर्ल:
pg=> CREATE LANGUAGE plperl;
CREATE LANGUAGE
pg=> CREATE FUNCTION psplit_to_rows(text) RETURNS SETOF TEXT AS $$
pg$> for my $t (split ' ', $_[0]) { return_next $t; }
pg$> undef;
pg$> $$ LANGUAGE plperl;
CREATE FUNCTION
pg=> SELECT "Column" FROM psplit_to_rows('how now brown cow') d("Column");
Column
--------
how
now
brown
cow
(4 rows)
जाहिर है आप अपने द्वारा चयनित किसी सीमांकक को संभालने के लिए इस विस्तार कर सकते हैं , आदि। (ध्यान दें, मुझे यकीन नहीं है कि क्या आप वास्तव में "कॉलम" नामक कॉलम चाहते थे, जिसके लिए कीवर्ड टकराव से बचने के लिए पहचानकर्ता उद्धरण की आवश्यकता होती है, लेकिन वहां आप हैं।)
+1। – pilcrow