Amigos tengo una duda, En una funcion recibo algunos parametros para usarlos como filtros, algo asi
CREATE OR REPLACE FUNCTION reporte_ventas_grupo( pgrupo_id varchar, pfinicio date, pffin date, OUT pproducto character varying, OUT ptotal numeric, OUT pcantidad integer) RETURNS SETOF record LANGUAGE 'plpgsql' COST 100 VOLATILE PARALLEL UNSAFE ROWS 1000 ....... en el campo grupo id, viene los codigos seleccionados por el usuario de los grupos que desea ver en el reporte mas o menos viene un varchar de esta forma '1,4,6,8,12' entonces quiero generar un select como este select p.id,p.nombre,d.cantidad,d.precio from ventas v inner join ventasd d on v.id=d.venta_id inner join productos p on d.producto_id=p.id inner join grupos l on p.grupo_id=l.id where v.fecha>=pfinicio and v.fecha<=pffin and v.esactivo=1 and case when pgrupo_id='' then true else p.grupo_id in (pgrupo_id) end order by p.nombre desc Claro el select es un poco mas complicado, la funcion completa esta asi CREATE OR REPLACE FUNCTION reporte_ventas_grupo( pgrupo_id varchar, pfinicio date, pffin date, OUT pproducto character varying, OUT ptotal numeric, OUT pcantidad integer) RETURNS SETOF record LANGUAGE 'plpgsql' COST 100 VOLATILE PARALLEL UNSAFE ROWS 1000 AS $BODY$ DECLARE rventas record; vtotal numeric; vcliente_id bigint; vvendedor_id bigint; BEGIN for rventas in select p.id,p.nombre,d.cantidad,d.precio from ventas v inner join ventasd d on v.id=d.venta_id inner join productos p on d.producto_id=p.id inner join grupos l on p.grupo_id=l.id where v.fecha>=pfinicio and v.fecha<=pffin and v.esactivo=1 and case when pgrupo_id='' then true else p.grupo_id in (pgrupo_id) end order by p.nombre desc loop pproducto:=rventas.nombre; ptotal:=round(rventas.precio,2); pcantidad:=rventas.cantidad; return next; end loop; return; END; $BODY$; pero al ejecutar la funcion me da este error ERROR: el operador no existe: integer = character varying LINE 8: ... case when pgrupo_id='' then true else p.grupo_id in (pgrupo... a la funcion la llamo asi select * from reporte_ventas_test('11,4,6,8,12','2021-01-01','2023-01-01') Como podria ejecutar el select con el parametro de grupo con varios codigos? Saludos