From: | Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com> |
---|---|
To: | suso <jlcubas(at)terra(dot)es> |
Cc: | PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: like no funciona |
Date: | 2009-11-28 15:03:33 |
Message-ID: | f205bb120911280703u5aa4bbb9l7c969ab2279fa1f6@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El día 28 de noviembre de 2009 11:50, suso <jlcubas(at)terra(dot)es> escribió:
> Este es el campo por el cual hace la busqueda, no debe devoler registros
> como tal, sino la cantidad de registros que empiecen por la letra "x", es
> letra es la que le paso a la function desde mi programa, es decir:
>
> select cont_reg( '" & cadena_que_le_paso & "')
>
> cadena_que_le_paso procede de un textbox, que normalmente será la inicial
> del campo apellido, puede ser 'P', puede ser 'S', etc, si hay mas de 500
> registros, empezaría por esa letra+ una segunda letra, o sea, 'PE' ó 'PI', o
> la combinación que sea.
>
> estos son los datos en los que debe mirar, en el campo apell
> "PIPOS"
> "UNO"
> "LOPEZ"
> "POPO"
> "UNO"
> "PEPET"
> "AFONSO"
> "JOSEFA"
> "SANCHA"
> "ESTEVEZ"
> "BUCK"
> "BELLON"
> "GARCIA"
>
probá
LIKE $e$'$e$ || apelli || $e$'%$e$;
>> El día 28 de noviembre de 2009 11:28, suso <jlcubas(at)terra(dot)es> escribió:
>>>
>>> Hola Emanuel
>>>>
>>>> 2009/11/27 suso <jlcubas(at)terra(dot)es>:
>>>>>
>>>>> Hola de nuevo, por favor, a ver si alguien me puede decir pq no
>>>>> funciona
>>>>> ésta consulta, incluso si la ejecuto dede pgadmin, postgres 8.4 y
>>>>> windows
>>>>> xp.
>>>>>
>>>>> select count(*) into devuel from clientes where apell like '" || apelli
>>>>> ||
>>>>> "%'
>>>>>
>>>>> select count(*) into devuel from clientes where apell like 'P%'
>>>>>
>>>>> Esto si funciona, si hago su "equivalente" desde vb6 va sin problemas.
>>>>> Otros colisteros me han dicho variantes, pero ninguna va.
>>>>> por ejemplo:
>>>>>
>>>>> 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 &
>>>>> %'
>>>>> Este tipo de cosas
>>>>>
>>>> Si apelli es una columna, hay algo mal en la composición de la
>>>> expresión.
>>>
>>> apelli es una valor que le paso a la function, voy a poner el código
>>> completo
>>>
>>> CREATE OR REPLACE FUNCTION cont_reg(apelli character varying)
>>> RETURNS integer AS
>>> $BODY$
>>>
>>> DECLARE
>>> devuel integer;
>>> BEGIN
>>> if apelli is not null THEN
>>> select count(*) into devuel from pacientes where apell like '" || apelli
>>> ||
>>> "%';
>>
>> la cadena contiene ' ?
>>
>>
>>
>>> end if;
>>>
>>> if found then
>>> return devuel;
>>> else
>>> return 0;
>>> end if;
>>> END;
>>>
>>> $BODY$
>>> LANGUAGE 'plpgsql' VOLATILE
>>> COST 100;
>>> ALTER FUNCTION cont_reg(character varying) OWNER TO postgres;
>>>>
>>>> Podrías mostar el registro que supuestamente te debería devolver?
>>
>> Aún esperamos el registro ;)
>>
>>
>>
>
>
--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar
From | Date | Subject | |
---|---|---|---|
Next Message | suso | 2009-11-28 15:57:20 | Re: like no funciona |
Previous Message | suso | 2009-11-28 14:50:30 | Re: like no funciona |