Hola Marcos, esa manera tampoco funciona, me da 0, aunque ya la había
probado, asi como las siguientes:

select COUNT(*) INTO devuel from CLIENTES where apell like '& apelli & %';
select COUNT(*) INTO devuel from CLIENTES where apell like 'apelli %';
select COUNT(*) INTO devuel from CLIENTES where apell like 'apelli || %';
select COUNT(*) INTO devuel from CLIENTES where apell like '|| apelli ||
%';

Esta es la funcion completa

DECLARE
 devuel integer;
BEGIN
  if apelli is not null THEN
                                   ---ENTRA EN ESTE BUCLE, HACE EL SELECT
     SELECT...
                                   ---   PERO DEVUELVE 0...:(
end if;
   if found=true then
       return devuel;
   else
       return 0;
   end if;
END;

Si le quito el "like....", me registros, osea la cantidad de registros
totales
lo que me extraña es que yo uso para en otro select (dentro de mi
programa, en vb6) sólo con el like, y me busca el registro
correspondiente, de esta manera:
cadena_auxi = "apell like '" & Trim(UCase(apelli(0).Text)) & "*" & "'"
 Adodc1(0).RecordSet.MoveFirst
 Adodc1(0).RecordSet.Find cadena_auxi
La que uso para este caso, no usa el control ado, Usa ADODB, como
siempre, y sin problemas hasta ahora
No sé...
Gracias
Un saludo
Suso
suso escribió:
Hola a todos, tengo un problemilla con esta consulta, con postgres 8.4 bajo winxp, quiero obtener la cantidad de registros que cumplan esa condición

devuel integer;
select COUNT(*) INTO devuel from CLIENTES where apell like '" & apelli & "%';

El campo apell esté en mayúsculas y en "apelli" también.

La ejecuto desde pgadmin o desde mi programa y siempre me duevuelve 0, y hay como mínimo 3 por la letra/s que quiero ver, que es el caso que menos tengo.

¿ En qué me equivoco ?.
Alquién que me eche una mano.
Muchas gracias
Un saludo
Suso
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo
Prueba asi:
select COUNT(*) INTO devuel from CLIENTES where apell like ' apelli%';



--
TIP 7: no olvides aumentar la configuración del "free space map"

Responder a