2015-12-08 26 views
1

在PostgreSQL中,我可以從表格查詢中選擇數據。舉例來說,我想使用for循環顯示t1中的entityname。如何從pgsql中的列表中選擇數據

DO 
$do$ 
DECLARE 
    e varchar; 
BEGIN 
    FOR e IN (SELECT entityname 
       FROM t1) 
    LOOP 

raise notice 'Value: %', e; 

END LOOP; 
END 
$do$; 

但是,如果我已經有entityname列表,我只想顯示它。這將是正確的做法,我嘗試使用

DO 
$do$ 
DECLARE 
    e varchar; 
BEGIN 
    FOR e IN ('t1','t2') 
    LOOP 

raise notice 'Value: %', e; 

END LOOP; 
END 
$do$; 

但它給錯誤

ERROR: syntax error at or near "'t1'" 
LINE 6: FOR e IN ('t1','t2') 

會是怎樣做到這一點的正確方法?

回答

0

正確的說法是FOREACH target IN ARRAY,它遍歷一個數組:

FOREACH target [ SLICE number ] IN ARRAY expression LOOP 
    statements 
END LOOP; 

另外,在您的情況:

DO $do$ DECLARE e varchar; 
BEGIN 
    FOREACH e IN ARRAY ARRAY['t1','t2'] LOOP  
    raise notice 'Value: %', e;  
    END LOOP; 
END $do$;