Re: like no funciona

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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