我刚刚开始使用 PostgreSQL 并创建了一个函数,该函数根据带有select
子句和where
limit
子句的limit
查询返回一个表。
我还想在不考虑CREATE OR REPLACE FUNCTION public.get_notifications(
search_text character,
page_no integer,
count integer)
RETURNS TABLE(id integer, head character, description text, img_url text, link text, created_on timestamp without time zone)
LANGUAGE 'plpgsql'
COST 100
VOLATILE
ROWS 1000
AS $BODY$
DECLARE
query text;
skip_records int = page_no * count;
BEGIN
query = concat('SELECT id,head,description,img_url,link,created_on from notifications where head ilike ''%',
search_text,'%''','offset ',skip_records,'limit ',count);
RETURN QUERY Execute query;
END;
$BODY$;
子句的情况下从满足条件的函数返回所有行的计数。
这是函数
select * from get_notifications('s',0,5)
这是电话
{{1}}
答案 0 :(得分:0)
您可以使用window function返回整个行集的计数:
select col1
, col2
, count(*) over () as total_rows -- < Window function
from YourTable
order by
col1
limit 10
over
子句指定count
进行操作的窗口。 over ()
是over (rows between unbounded preceding and unbounded following)
的缩写。