집 >데이터 베이스 >MySQL 튜토리얼 >PostgreSQL 함수에서 쿼리 결과를 반환하는 방법은 무엇입니까?
PostgreSQL은 RETURN QUERY
문을 사용하여 함수 내에서 쿼리 결과를 반환합니다. 이 방법은 함수 출력의 일부로 쿼리 결과가 필요할 때 특히 유용합니다.
다음 기능을 고려해보세요:
<code class="language-sql">CREATE OR REPLACE FUNCTION wordFrequency(maxTokens INTEGER) RETURNS SETOF RECORD AS $$ BEGIN -- 执行查询 SELECT text, count(*), 100 / maxTokens * count(*) FROM ( SELECT text FROM token WHERE chartype = 'ALPHABETIC' LIMIT maxTokens ) AS tokens GROUP BY text ORDER BY count DESC; END $$ LANGUAGE plpgsql;</code>
이 함수는 쿼리 결과를 반환하려고 시도하지만 중요한 부분인 RETURN QUERY
문이 누락되었습니다.
쿼리 결과를 반환하려면 다음과 같이 RETURN QUERY
문을 사용하세요.
<code class="language-sql">CREATE OR REPLACE FUNCTION word_frequency(_max_tokens int) RETURNS TABLE (txt text -- 函数体中显示为 OUT 参数 , cnt bigint , ratio bigint) LANGUAGE plpgsql AS $func$ BEGIN RETURN QUERY SELECT t.txt , count(*) AS cnt -- 列别名仅在此查询中可见 , (count(*) * 100) / _max_tokens -- 添加了括号 FROM ( SELECT t.txt FROM token t WHERE t.chartype = 'ALPHABETIC' LIMIT _max_tokens ) t GROUP BY t.txt ORDER BY cnt DESC; END $func$;</code>
이 기능을 실행하려면 다음 명령문을 사용할 수 있습니다.
<code class="language-sql">SELECT * FROM word_frequency(123);</code>
이렇게 하면 token
테이블의 각 단어에 대한 텍스트, 개수 및 비율이 포함된 테이블이 반환됩니다.
위 내용은 PostgreSQL 함수에서 쿼리 결과를 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!