2013-10-29 33 views
1
用繩子圈

在這裏,我試圖將字符串與,在PostgreSQL中

CREATE FUNCTION looping() RETURNS TABLE(round text) 
DECLARE 
    i RECORD; 
BEGIN 

FOR i IN select regexp_split_to_table('33,55,66,88', ',') as "asd" 
LOOP 
    str:= str || ',' ||(select i."asd"); 
END LOOP; 

END; 
$$ LANGUAGE plpgsql; 

這是真的還是我失去了一些東西?

+0

什麼是你計劃與「STR」的事,你沒有申報或使用在任何地方,除了在循環? – SpliFF

回答

2

通常,具有標準SQL函數的基於集合的操作優於循環。
但是如果你需要在PLPGSQL控制結構,將工作像這樣(的途徑之一):

CREATE FUNCTION f_loop2(OUT str text) 
    RETURNS text AS 
$func$ 
DECLARE 
    i text; 
BEGIN 
str := ''; 

FOR i IN 
    SELECT regexp_split_to_table('33,55,66,88', ',') 
LOOP 
    str := str || ',' || i; 
END LOOP; 

END 
$func$ LANGUAGE plpgsql;