2013-09-29 3 views
3

일부 구분 기호에서 문자열을 분할 한 다음 부분을 반복 할 수 있습니까? 몇 가지 기능과 루프 유형을 시도했지만 성공하지 못했습니다.분할 문자열을 반복하는 방법

create or replace function splitloop() returns void 
as $$ 
DECLARE 
part text; 
BEGIN 
    foreach part in string_to_array('one,two,three', ',') 
    loop 
     -- do something with part 
    end loop; 
END; 
$$ language plpgsql; 

답변

6

당신이 실제 배열하기 전에 단어 '배열'을 추가해야합니다 : 내가 좋아하는 뭔가를 달성하기 위해 노력하고

foreach part in array string_to_array('one,two,three', ',') 
loop 
    -- do something with part 
end loop; 

sql fiddle demo

설명서에 대한 looping through arrays합니다.

0

집합 기반 작업 (일반 SQL 쿼리)과 관련하여 문제를 다시 작성할 수 있으면 그렇게해야합니다. unnest()은 키 세트 반환 함수입니다. sql 또는 plpgsql 함수로 묶을 수도 있습니다. plpgsql 구문 :

RETURN QUERY 
SELECT unnest(string_to_array('one,two,three', ',')) 
... 

상세 당신의 세부 사항에 따라 달라집니다.

관련 문제