0
這裏是場景。我想根據記錄計數返回一個結果集。例如:Postgres中頻控制結構選擇
DO
$BODY$
IF (SELECT count(*) < 50 FROM (
SELECT * FROM (SELECT col1, col2, col3 FROM v_my_view) AS cnt;)
THEN
SELECT * FROM (SELECT col1, col2, col3 FROM v_my_view) AS qry;
ELSE (
SELECT *, NTILE(5) OVER (ORDER BY col1 DESC) AS my_tile FROM (
SELECT col1, col2, col3 FROM v_my_view) AS tileme;)
END IF;
END;
$BODY$
請注意,語法是近似的,但意圖應該是顯而易見的。如果記錄集很小,則返回查詢,否則返回一個有爭議的查詢。我有各種錯誤信息試圖執行此操作,其中包括:
在非SETOF功能不能使用返回查詢
或
查詢沒有目的地的結果數據
此外,我知道你不應該在生產代碼中使用*。