Je ya encontre la solucion creo que me sirvio simplemente preguntar y ya solito me respondi
Dejo el codigo talvez a alguien le sirva
Código Delphi
[-]
CREATE OR REPLACE FUNCTION consulta2(
nombre text,
curso text,
gestion int,
)
RETURNS table (nombre text, gestion int, curso text, operador text, total int) AS
$$
DECLARE
sql text;
BEGIN
sql := 'SELECT alumno.nombre as nombre,alumno.gestion as gestion,alumno.curso as curso,operador.detalle as operador,count(*) as total FROM alumno
inner join operador on alumno.id_operador=operador.id_operador
WHERE 1=1 ';
IF nombre <>0 THEN sql := sql || ' AND alumno.nombre in('||nombre||')'; END IF;
IF curso <>0 THEN sql := sql || ' AND alumno.curso in('||curso||')'; END IF;
IF gestion <>0 THEN sql := sql || ' AND alumno.gestion in('||gestion||')'; END IF;
sql:=sql || 'GROUP BY alumno.nombre,alumno.gestion,alumno.curso,operador.detalle';
for var in execute sql loop
nombre:= var.nombre
curso:= var.curso;
gestion:=var.gestion;
operador:=var.operador;
total:=var.total;
return next;
end loop;
end;
$$
LANGUAGE plpgsql;