Re: like no funciona -- SOLUCIONADO

Lists: pgsql-es-ayuda
From: suso <jlcubas(at)terra(dot)es>
To: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: like no funciona
Date: 2009-11-27 21:18:57
Message-ID: 4B104241.4040806@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

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

Gracias
Un slaudo
Suso


From: juan <juanramirez(at)cajazacate(dot)com(dot)sv>
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 13:57:34
Message-ID: 4B112C4E.8090408@cajazacate.com.sv
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

suso escribió:
> 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 'P%'
> 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

Lo mismo de siempre.... QUE ERROR TE DA¿?

Lejos de esa simple respuesta!

Que resultado queres obtener?

saber cuantos clientes empiezan en su apellido con la letra "P" ¿?

De ser así esta consulta te debería funcionar:
select count(*) from clientes where apell like 'P%'

--
Cordialmente,
Juan Ramírez
El Salvador


From: suso <jlcubas(at)terra(dot)es>
To: juan <juanramirez(at)cajazacate(dot)com(dot)sv>
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 14:03:35
Message-ID: 4B112DB7.9060306@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola juan
> suso escribió:
>> 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 'P%'
>> 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
>
> Lo mismo de siempre.... QUE ERROR TE DA¿?
No me error, me da registros 0, y si hay registros (comprobado)
>
>
> Lejos de esa simple respuesta!
>
> Que resultado queres obtener?
obtener el número o cantidad de registros que empiecen con o por la letra 'P' por ejemplo, o la
que ponga, aparecerán "x" registros, pero me retorna valor 0, y que ese valor me lo retorne,
para obtenerlo desde la llamada a la funcion, que hago en mi programa.
>
> saber cuantos clientes empiezan en su apellido con la letra "P" ¿?
si
>
> De ser así esta consulta te debería funcionar:
> select count(*) from clientes where apell like 'P%' - puede ser P, o R, o caulqiuer letra, la que escriba el usuario
Claro, pero aqui no me devuelve la cantidad de registros en una variable como valro de retorno.
>
Gracias
Un saludo
Suso


From: suso <jlcubas(at)terra(dot)es>
To: juan <juanramirez(at)cajazacate(dot)com(dot)sv>
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 14:05:10
Message-ID: 4B112E16.9070709@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola de nuevo
> suso escribió:
>> 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 'P%'
>> 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
>
> Lo mismo de siempre.... QUE ERROR TE DA¿?
>
>
> Lejos de esa simple respuesta!
>
> Que resultado queres obtener?
>
> saber cuantos clientes empiezan en su apellido con la letra "P" ¿?
Como suelepasar, es indefino, lo sé cuadno hago la consulta, por el valor almacenado en "devuel"
>
> De ser así esta consulta te debería funcionar:
> select count(*) from clientes where apell like 'P%'
>
>


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 14:24:17
Message-ID: f205bb120911280624t2905cccasd67257505c791b19@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

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.

Podrías mostar el registro que supuestamente te debería devolver?

--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar


From: suso <jlcubas(at)terra(dot)es>
To: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 14:28:01
Message-ID: 4B113371.6050100@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

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 || "%';
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?


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 14:35:25
Message-ID: f205bb120911280635o42e6eb97gf73d6ecf8cc834fc@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

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: suso <jlcubas(at)terra(dot)es>
To: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 14:50:30
Message-ID: 4B1138B6.1070201@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

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"

> 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 ;)
>
>
>


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
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: suso <jlcubas(at)terra(dot)es>
To:
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 15:57:20
Message-ID: 4B114860.6000308@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Me sigue dando 0 registros, el like no reconoce o no hace la comparación correctamente, ya que
si pongo(a efectos de prueba)
LIKE 'P&' puede ser P, o L o la letra que sea
esto funciona perfectamente
si hago la asignación a través del parámetro de la function, ahí es donde falla
Como pudiste ver, los nombres están todos en mayúsculas (auqneu también uso he usado ilike), etc.

> 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 ;)
>>>
>>>
>>>
>>
>
>
>


From: suso <jlcubas(at)terra(dot)es>
To:
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 16:14:12
Message-ID: 4B114C54.8030203@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Éstos son los datos de ese campo:
ALTER TABLE pacientes ADD COLUMN apell character varying(40);
ALTER TABLE pacientes ALTER COLUMN apell SET STORAGE EXTENDED;
ALTER TABLE pacientes ALTER COLUMN apell SET NOT NULL;

Aunque estoy por darme por vencido, y ejecutar la consulta desde vb6, que sí me funciona
correctamente,sin necesidad de llamar a la function de postgres, me devuelve el número de
registros mediante un recordset obtenido mediante el like, no sé, lo veo "complicado" por no
decir otra cosa:(
Aunque me gustaría saber más que nada, el por qué no funciona como debe, he consultado en el
manual, varias páginas(bastantes, hasta he visto casos ligeramente parecidos, en los que han
intervenido, hace algunos años, Edwin y/o Alvaro creo recordar haber visto), y me he guiado por
la infinidad de páginas que he visto, pero no es correcto (como yo lo tengo), pq no funciona...
Gracias
Un saludo
Suso

> 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 ;)
>>>
>>>
>>>
>>
>
>
>


From: Cesar Erices <caerices(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 16:50:46
Message-ID: 1cb5d9840911280850ke10c74flc004c9029657324@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

mira yo tengo esta funcion en postgres

-- Function: cl_cargo_buscar(integer, character varying, integer, integer)

-- DROP FUNCTION cl_cargo_buscar(integer, character varying, integer,
integer);

CREATE OR REPLACE FUNCTION cl_cargo_buscar(m_tipo integer, m_dato character
varying, m_codigo integer, m_clinica integer)
RETURNS SETOF cargo AS
$BODY$
DECLARE
fila cargo%rowtype;
sql character varying;
m character varying;
BEGIN
--1:BUSCAR TODOS LOS REGISTROS
IF m_tipo= 1 THEN
sql = 'SELECT * FROM cargo c, clinica cl
WHERE c.cl_cod=cl.cl_cod
AND c.cl_cod='|| m_clinica || ' ORDER BY cg_cod ';
END IF;
--2:BUSCAR REGISTROS DE ACUERDO AL NOMBRE O PARTE DE EL
IF m_tipo = 2 THEN
sql = 'SELECT * FROM cargo c, clinica cl
WHERE c.cl_cod=cl.cl_cod
AND cg_nombre like UPPER('|| quote_literal($2) ||') ' || '
AND c.cl_cod='|| m_clinica ;
END IF;
--3:BUSCAR REGISTROS DE ACUERDO AL CODIGO
IF m_tipo=3 THEN
sql = 'SELECT * FROM cargo c, clinica cl
WHERE c.cl_cod=cl.cl_cod
AND c.cl_cod='|| m_clinica || '
AND cg_cod ='|| m_codigo;
END IF;

FOR fila IN EXECUTE sql
LOOP
RETURN NEXT fila;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION cl_cargo_buscar(integer, character varying, integer, integer)
OWNER TO postgres;

y la llamo de la siguiente forma en visual basic

select * from cl_cargo_buscar(2,'p%',0,1)

me devuelve

--
Sin más que decir se despide de Usted, muy atentamente

Cesar Erices Vergara
Ingeniero en Gestión Informática
Analista de Sistema

Santiago - Chile


From: suso <jlcubas(at)terra(dot)es>
To: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 17:54:19
Message-ID: 4B1163CB.2060900@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola Cesar, probé tu función, que aunque devuelve todos los registros
coincidentes, no la cantidad exclusivamente de registros que puede
haber, mi "necesidad" de devolver cantiddad, es pq no sé cuántos
registros puede traer esa consulta(puede tener 1000 o 2000, para carga
de red no sé si s demasiado, debdio a eso, no me gustaría que trajera
más de 500), pq sabiendo la cantidad, si es mayor de 500, me traigo sólo
los 500, y los demás para una futura consulta (si es que es necesario).
No sé si me explico.
Aún así, adapté la consulta de like según me pasaste en el ejemplo, pero
me sigue trayendo 0, es decir, a mí no me funciona, lo dicho, soy gafe:(
No sé si lo estoy haciendo mal, o no se puede lo que yo necesito.
select COUNT(*) INTO devuel from pacientes where apell LIKE
UPPER('|| quote_literal($1) ||');
Me deveulve 0
Muchas gracias
Un saludo
Suso
> mira yo tengo esta funcion en postgres
>
> -- Function: cl_cargo_buscar(integer, character varying, integer, integer)
>
> -- DROP FUNCTION cl_cargo_buscar(integer, character varying, integer,
> integer);
>
> CREATE OR REPLACE FUNCTION cl_cargo_buscar(m_tipo integer, m_dato
> character varying, m_codigo integer, m_clinica integer)
> RETURNS SETOF cargo AS
> $BODY$
> DECLARE
> fila cargo%rowtype;
> sql character varying;
> m character varying;
> BEGIN
> --1:BUSCAR TODOS LOS REGISTROS
> IF m_tipo= 1 THEN
> sql = 'SELECT * FROM cargo c, clinica cl
> WHERE c.cl_cod=cl.cl_cod
> AND c.cl_cod='|| m_clinica || ' ORDER BY cg_cod ';
> END IF;
> --2:BUSCAR REGISTROS DE ACUERDO AL NOMBRE O PARTE DE EL
> IF m_tipo = 2 THEN
> sql = 'SELECT * FROM cargo c, clinica cl
> WHERE c.cl_cod=cl.cl_cod
> AND cg_nombre like UPPER('|| quote_literal($2) ||') ' || '
> AND c.cl_cod='|| m_clinica ;
> END IF;
> --3:BUSCAR REGISTROS DE ACUERDO AL CODIGO
> IF m_tipo=3 THEN
> sql = 'SELECT * FROM cargo c, clinica cl
> WHERE c.cl_cod=cl.cl_cod
> AND c.cl_cod='|| m_clinica || '
> AND cg_cod ='|| m_codigo;
> END IF;
>
> FOR fila IN EXECUTE sql
> LOOP
> RETURN NEXT fila;
> END LOOP;
> RETURN;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE
> COST 100
> ROWS 1000;
> ALTER FUNCTION cl_cargo_buscar(integer, character varying, integer,
> integer) OWNER TO postgres;
>
> y la llamo de la siguiente forma en visual basic
>
> select * from cl_cargo_buscar(2,'p%',0,1)
>
> me devuelve
>
>
>
> --
> Sin más que decir se despide de Usted, muy atentamente
>
> Cesar Erices Vergara
> Ingeniero en Gestión Informática
> Analista de Sistema
>
> Santiago - Chile


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 17:54:40
Message-ID: f205bb120911280954m47a904f2ob3cae2038dc8b758@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El día 28 de noviembre de 2009 12:57, suso <jlcubas(at)terra(dot)es> escribió:
> Me sigue dando 0 registros, el like no reconoce o no hace la comparación
> correctamente, ya que si pongo(a efectos de prueba)
> LIKE 'P&'      puede ser P, o L o la letra que sea
> esto funciona perfectamente
> si hago la asignación a través del parámetro de la function, ahí es donde
> falla

SELECT * FROM
prueba
WHERE
apelli like ('PE' || '%')::text;

Probá ponerlo todo entre paréntesis..
--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar


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 18:00:19
Message-ID: f205bb120911281000r21b83998qa6e6aff877c3a360@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El día 28 de noviembre de 2009 14:54, suso <jlcubas(at)terra(dot)es> escribió:
> Hola Cesar, probé tu función, que aunque devuelve todos los registros
> coincidentes, no la cantidad exclusivamente de registros que puede haber, mi
> "necesidad" de devolver cantiddad, es pq no sé cuántos registros puede traer
> esa consulta(puede tener 1000 o 2000, para carga de red no sé si s
> demasiado, debdio a eso, no me gustaría que trajera más de 500), pq sabiendo
> la cantidad, si es mayor de 500, me traigo sólo los 500, y los demás para
> una futura consulta (si es que es necesario).
> No sé si me explico.
> Aún así, adapté la consulta de like según me pasaste en el ejemplo, pero me
> sigue trayendo 0, es decir, a mí no me funciona, lo dicho, soy gafe:(
> No sé si lo estoy haciendo mal, o no se puede lo que yo necesito.
>   select COUNT(*) INTO devuel  from pacientes where apell LIKE UPPER('||
> quote_literal($1) ||');
> Me deveulve 0

DROP TABLE prueba;
CREATE TABLE prueba
AS
SELECT ('{PEDRO,JUAN,ROBERTO,
PEPE}'::text[])[round(random()*3+1)] as apelli
FROM generate_series(1,20);

UPDATE prueba SET apelli = quote_literal(apelli);

SELECT * FROM
prueba
WHERE
apelli like ( $e$'$e$ || 'PE' || '%')::text;

--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar


From: Julio Cesar Rodriguez Dominguez <jurasec(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 18:08:29
Message-ID: 925902880911281008n723173a8uc66d98f57ebffcb6@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El 28 de noviembre de 2009 11:54, suso <jlcubas(at)terra(dot)es> escribió:

> Hola Cesar, probé tu función, que aunque devuelve todos los registros
> coincidentes, no la cantidad exclusivamente de registros que puede haber, mi
> "necesidad" de devolver cantiddad, es pq no sé cuántos registros puede traer
> esa consulta(puede tener 1000 o 2000, para carga de red no sé si s
> demasiado, debdio a eso, no me gustaría que trajera más de 500), pq sabiendo
> la cantidad, si es mayor de 500, me traigo sólo los 500, y los demás para
> una futura consulta (si es que es necesario).
> No sé si me explico.

para eso puedes hacer una paginación para mostrar tus registros con offset y
limit


From: suso <jlcubas(at)terra(dot)es>
To: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 18:09:43
Message-ID: 4B116767.2040504@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Esto me devuelve 0, ya qu eno es 'PE', esto sería la/s primera/s letra/s
del capo apellido, eber ser una variable, ya que yo no sé si va a ser
PE, o LO, P sola o cualquiera sabe que letra/s
No sé si me explico, por eso nmo puede ser 'PE', debe ser ' & apelli
&'... o el nombre de variable que qrerramos, peo no puede ser literal
si pongo 'PE' (no me hace falta hacer conversion) me da exatamente los
que tengo, pero como digo más arriba, no pued eser así(sólo a efectos de
prueba)
> El día 28 de noviembre de 2009 12:57, suso <jlcubas(at)terra(dot)es> escribió:
>
>> Me sigue dando 0 registros, el like no reconoce o no hace la comparación
>> correctamente, ya que si pongo(a efectos de prueba)
>> LIKE 'P&' puede ser P, o L o la letra que sea
>> esto funciona perfectamente
>> si hago la asignación a través del parámetro de la function, ahí es donde
>> falla
>>
>
>
> SELECT * FROM
> prueba
> WHERE
> apelli like ('PE' || '%')::text;
>
>
> Probá ponerlo todo entre paréntesis..
>


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 18:12:54
Message-ID: f205bb120911281012h45cd43eqa85f0b069a53472f@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El día 28 de noviembre de 2009 15:09, suso <jlcubas(at)terra(dot)es> escribió:
> Esto me devuelve 0, ya qu eno es 'PE', esto sería la/s primera/s letra/s del
> capo apellido, eber ser una variable, ya que yo no sé si va a ser PE, o LO,
> P sola o cualquiera sabe que letra/s
> No sé si me explico, por eso nmo puede ser 'PE', debe ser ' & apelli &'...
>  o el nombre de variable que qrerramos, peo no puede ser literal
> si pongo 'PE'  (no me hace falta hacer conversion) me da exatamente los que
> tengo, pero como digo más arriba, no pued eser así(sólo a efectos de prueba)
>>
>> El día 28 de noviembre de 2009 12:57, suso <jlcubas(at)terra(dot)es> escribió:
>>
>>>
>>> Me sigue dando 0 registros, el like no reconoce o no hace la comparación
>>> correctamente, ya que si pongo(a efectos de prueba)
>>> LIKE 'P&'      puede ser P, o L o la letra que sea
>>> esto funciona perfectamente
>>> si hago la asignación a través del parámetro de la function, ahí es donde
>>> falla
>>>
>>
>>
>> SELECT * FROM
>> prueba
>> WHERE
>> apelli like ('PE' || '%')::text;
>>
>>

lo que te pase es un set de prueba, en vez de 'PE', proba poniendo apelli...

>> Probá ponerlo todo entre paréntesis..
>>
>
> --
> TIP 8: explain analyze es tu amigo
>

--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar


From: suso <jlcubas(at)terra(dot)es>
To: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 18:16:57
Message-ID: 4B116919.3070606@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Emanuel Calvo Franco escribió:
> El día 28 de noviembre de 2009 14:54, suso <jlcubas(at)terra(dot)es> escribió:
>> Hola Cesar, probé tu función, que aunque devuelve todos los registros
>> coincidentes, no la cantidad exclusivamente de registros que puede haber, mi
>> "necesidad" de devolver cantiddad, es pq no sé cuántos registros puede traer
>> esa consulta(puede tener 1000 o 2000, para carga de red no sé si s
>> demasiado, debdio a eso, no me gustaría que trajera más de 500), pq sabiendo
>> la cantidad, si es mayor de 500, me traigo sólo los 500, y los demás para
>> una futura consulta (si es que es necesario).
>> No sé si me explico.
>> Aún así, adapté la consulta de like según me pasaste en el ejemplo, pero me
>> sigue trayendo 0, es decir, a mí no me funciona, lo dicho, soy gafe:(
>> No sé si lo estoy haciendo mal, o no se puede lo que yo necesito.
>> select COUNT(*) INTO devuel from pacientes where apell LIKE UPPER('||
>> quote_literal($1) ||');
>> Me deveulve 0
>
>
>
> DROP TABLE prueba;
> CREATE TABLE prueba
> AS

Este select concretamente, que hace,pq me da error de sintaxis en esta línea precisamente
> SELECT ('{PEDRO,JUAN,ROBERTO,
> PEPE}'::text[])[round(random()*3+1)] as apelli
> FROM generate_series(1,20);
>
> UPDATE prueba SET apelli = quote_literal(apelli);
>
> SELECT * FROM
> prueba
> WHERE
> apelli like ( $e$'$e$ || 'PE' || '%')::text;
>
>


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 18:19:36
Message-ID: f205bb120911281019y4978a8cei5c3ef49389094f4c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El día 28 de noviembre de 2009 15:16, suso <jlcubas(at)terra(dot)es> escribió:
> Emanuel Calvo Franco escribió:
>>
>> El día 28 de noviembre de 2009 14:54, suso <jlcubas(at)terra(dot)es> escribió:
>>>
>>> Hola Cesar, probé tu función, que aunque devuelve todos los registros
>>> coincidentes, no la cantidad exclusivamente de registros que puede haber,
>>> mi
>>> "necesidad" de devolver cantiddad, es pq no sé cuántos registros puede
>>> traer
>>> esa consulta(puede tener 1000 o 2000, para carga de red no sé si s
>>> demasiado, debdio a eso, no me gustaría que trajera más de 500), pq
>>> sabiendo
>>> la cantidad, si es mayor de 500, me traigo sólo los 500, y los demás para
>>> una futura consulta (si es que es necesario).
>>> No sé si me explico.
>>> Aún así, adapté la consulta de like según me pasaste en el ejemplo, pero
>>> me
>>> sigue trayendo 0, es decir, a mí no me funciona, lo dicho, soy gafe:(
>>> No sé si lo estoy haciendo mal, o no se puede lo que yo necesito.
>>>  select COUNT(*) INTO devuel  from pacientes where apell LIKE UPPER('||
>>> quote_literal($1) ||');
>>> Me deveulve 0
>>
>>
>>
>> DROP TABLE prueba;
>> CREATE TABLE prueba
>> AS
>
> Este select concretamente, que hace,pq me da error de sintaxis en esta línea
> precisamente

Este select en realidad es parte de la sintaxis de 'CREATE TABLE'.
Simplemente lo use
en conjunto con el UPDATE para generar un set de pruebas con datos
similares a los tuyos.

>>
>> SELECT ('{PEDRO,JUAN,ROBERTO,
>>        PEPE}'::text[])[round(random()*3+1)] as apelli
>>        FROM generate_series(1,20);
>>
>> UPDATE prueba SET apelli = quote_literal(apelli);
>>

Este es el select que interesa:

>> SELECT * FROM
>> prueba
>> WHERE
>> apelli like  ( $e$'$e$ || 'PE' || '%')::text;
>>

--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar


From: suso <jlcubas(at)terra(dot)es>
To: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 18:19:37
Message-ID: 4B1169B9.904@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola Juliom claro, precisamente por eso quiero saber si tiene ams de "X" cantidad o menos, pq si
tengo muchos, en el offset voy asignando una fracción de esa cantidad, pero si asigno mas de los
que tengo..cae y no funciona, no?
>
>
> El 28 de noviembre de 2009 11:54, suso <jlcubas(at)terra(dot)es
> <mailto:jlcubas(at)terra(dot)es>> escribió:
>
> Hola Cesar, probé tu función, que aunque devuelve todos los
> registros coincidentes, no la cantidad exclusivamente de registros
> que puede haber, mi "necesidad" de devolver cantiddad, es pq no sé
> cuántos registros puede traer esa consulta(puede tener 1000 o 2000,
> para carga de red no sé si s demasiado, debdio a eso, no me gustaría
> que trajera más de 500), pq sabiendo la cantidad, si es mayor de
> 500, me traigo sólo los 500, y los demás para una futura consulta
> (si es que es necesario).
> No sé si me explico.
>
>
> para eso puedes hacer una paginación para mostrar tus registros con
> offset y limit


From: "AntonioG" <antoniog(at)adinet(dot)com(dot)uy>
To: "Emanuel Calvo Franco" <postgres(dot)arg(at)gmail(dot)com>, "suso" <jlcubas(at)terra(dot)es>
Cc: "PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 18:28:10
Message-ID: 175DEEB0C9CE4D80A004DC15BD17DBA8@5mentarios
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Estimados, este ejemplo funciona

SELECT cod_socio,apellido,nombre
FROM dt_socio
WHERE apellido LIKE '%GUI%'

Cordialmente

Antonio

----- Original Message -----
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>
Sent: Saturday, November 28, 2009 4:12 PM
Subject: Re: [pgsql-es-ayuda] like no funciona

El día 28 de noviembre de 2009 15:09, suso <jlcubas(at)terra(dot)es> escribió:
> Esto me devuelve 0, ya qu eno es 'PE', esto sería la/s primera/s letra/s
> del
> capo apellido, eber ser una variable, ya que yo no sé si va a ser PE, o
> LO,
> P sola o cualquiera sabe que letra/s
> No sé si me explico, por eso nmo puede ser 'PE', debe ser ' & apelli &'...
> o el nombre de variable que qrerramos, peo no puede ser literal
> si pongo 'PE' (no me hace falta hacer conversion) me da exatamente los que
> tengo, pero como digo más arriba, no pued eser así(sólo a efectos de
> prueba)
>>
>> El día 28 de noviembre de 2009 12:57, suso <jlcubas(at)terra(dot)es> escribió:
>>
>>>
>>> Me sigue dando 0 registros, el like no reconoce o no hace la comparación
>>> correctamente, ya que si pongo(a efectos de prueba)
>>> LIKE 'P&' puede ser P, o L o la letra que sea
>>> esto funciona perfectamente
>>> si hago la asignación a través del parámetro de la function, ahí es
>>> donde
>>> falla
>>>
>>
>>
>> SELECT * FROM
>> prueba
>> WHERE
>> apelli like ('PE' || '%')::text;
>>
>>

lo que te pase es un set de prueba, en vez de 'PE', proba poniendo apelli...

>> Probá ponerlo todo entre paréntesis..
>>
>
> --
> TIP 8: explain analyze es tu amigo
>

--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

--
Estoy utilizando la versión gratuita de SPAMfighter para usuarios privados.
Hasta ahora ha bloqueado 629 spam y me ha ahorrado mucho tiempo.
Ya somos 6 millones de usuarios en todo el mundo, ¡Únete a nosotros!.
Puedes descargar la versión gratis : http://www.spamfighter.com/les
Los usuarios de pago no tienen esta firma.


From: suso <jlcubas(at)terra(dot)es>
To: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 18:28:43
Message-ID: 4B116BDB.80402@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

No me funciona, sustituí, como te comenté el PE por ('|| apelli' || '%')
SELECT INTO devuel COUNT(*) AS totalreg from pacientes where pacientes.apell like ('" || apelli
|| "%')::text;
y lo pruebo desde pgadmin con
select cont_reg('P')

> El día 28 de noviembre de 2009 15:09, suso <jlcubas(at)terra(dot)es> escribió:
>> Esto me devuelve 0, ya qu eno es 'PE', esto sería la/s primera/s letra/s del
>> capo apellido, eber ser una variable, ya que yo no sé si va a ser PE, o LO,
>> P sola o cualquiera sabe que letra/s
>> No sé si me explico, por eso nmo puede ser 'PE', debe ser ' & apelli &'...
>> o el nombre de variable que qrerramos, peo no puede ser literal
>> si pongo 'PE' (no me hace falta hacer conversion) me da exatamente los que
>> tengo, pero como digo más arriba, no pued eser así(sólo a efectos de prueba)
>>> El día 28 de noviembre de 2009 12:57, suso <jlcubas(at)terra(dot)es> escribió:
>>>
>>>> Me sigue dando 0 registros, el like no reconoce o no hace la comparación
>>>> correctamente, ya que si pongo(a efectos de prueba)
>>>> LIKE 'P&' puede ser P, o L o la letra que sea
>>>> esto funciona perfectamente
>>>> si hago la asignación a través del parámetro de la function, ahí es donde
>>>> falla
>>>>
>>>
>>> SELECT * FROM
>>> prueba
>>> WHERE
>>> apelli like ('PE' || '%')::text;
>>>
>>>
>
> lo que te pase es un set de prueba, en vez de 'PE', proba poniendo apelli...
>
>
>>> Probá ponerlo todo entre paréntesis..
>>>
>> --
>> TIP 8: explain analyze es tu amigo
>>
>
>
>


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 18:29:51
Message-ID: f205bb120911281029i8427225h5abbf2c831eb4f35@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El día 28 de noviembre de 2009 15:28, suso <jlcubas(at)terra(dot)es> escribió:
> No me funciona, sustituí, como te comenté el PE por ('|| apelli' || '%')
> SELECT INTO devuel COUNT(*) AS totalreg from pacientes where pacientes.apell
> like ('" || apelli || "%')::text;

no, te tiene que quedar:

like (apelli || '%')::Text;

--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar


From: suso <jlcubas(at)terra(dot)es>
To: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 18:34:38
Message-ID: 4B116D3E.2090508@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

lo acabo de probar, como señalas mas abajo, y lo msimo, 0, no sé que puede estar mal
esta es la definición de ese campo, por si ves algo "raro"
ALTER TABLE pacientes ADD COLUMN apell character varying(40);
ALTER TABLE pacientes ALTER COLUMN apell SET STORAGE EXTENDED;
ALTER TABLE pacientes ALTER COLUMN apell SET NOT NULL;

Y este es el índice
CREATE INDEX pacientes_apell
ON pacientes
USING btree
(apell);

> El día 28 de noviembre de 2009 15:16, suso <jlcubas(at)terra(dot)es> escribió:
>> Emanuel Calvo Franco escribió:
>>> El día 28 de noviembre de 2009 14:54, suso <jlcubas(at)terra(dot)es> escribió:
>>>> Hola Cesar, probé tu función, que aunque devuelve todos los registros
>>>> coincidentes, no la cantidad exclusivamente de registros que puede haber,
>>>> mi
>>>> "necesidad" de devolver cantiddad, es pq no sé cuántos registros puede
>>>> traer
>>>> esa consulta(puede tener 1000 o 2000, para carga de red no sé si s
>>>> demasiado, debdio a eso, no me gustaría que trajera más de 500), pq
>>>> sabiendo
>>>> la cantidad, si es mayor de 500, me traigo sólo los 500, y los demás para
>>>> una futura consulta (si es que es necesario).
>>>> No sé si me explico.
>>>> Aún así, adapté la consulta de like según me pasaste en el ejemplo, pero
>>>> me
>>>> sigue trayendo 0, es decir, a mí no me funciona, lo dicho, soy gafe:(
>>>> No sé si lo estoy haciendo mal, o no se puede lo que yo necesito.
>>>> select COUNT(*) INTO devuel from pacientes where apell LIKE UPPER('||
>>>> quote_literal($1) ||');
>>>> Me deveulve 0
>>>
>>>
>>> DROP TABLE prueba;
>>> CREATE TABLE prueba
>>> AS
>> Este select concretamente, que hace,pq me da error de sintaxis en esta línea
>> precisamente
>
> Este select en realidad es parte de la sintaxis de 'CREATE TABLE'.
> Simplemente lo use
> en conjunto con el UPDATE para generar un set de pruebas con datos
> similares a los tuyos.
>
>>> SELECT ('{PEDRO,JUAN,ROBERTO,
>>> PEPE}'::text[])[round(random()*3+1)] as apelli
>>> FROM generate_series(1,20);
>>>
>>> UPDATE prueba SET apelli = quote_literal(apelli);
>>>
>
> Este es el select que interesa:
>
>>> SELECT * FROM
>>> prueba
>>> WHERE
>>> apelli like ( $e$'$e$ || 'PE' || '%')::text;
>>>
>
>
>
>
>


From: suso <jlcubas(at)terra(dot)es>
To: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 18:39:46
Message-ID: 4B116E72.2060705@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola AntonioG
he probado con todos estos, en este caso, me da lo mismo 0,
select count(*) into devuel from pacientes where apell like '%pelli%';
select count(*) into devuel from pacientes where apell like '& %pelli %& ';
select count(*) into devuel from pacientes where apell like '%pelli & % ';
select count(*) into devuel from pacientes where apell like '& %pelli & % ';
> Estimados, este ejemplo funciona
>
> SELECT cod_socio,apellido,nombre
> FROM dt_socio
> WHERE apellido LIKE '%GUI%'
>
> Cordialmente
>
> Antonio
>
>
> ----- Original Message ----- 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>
> Sent: Saturday, November 28, 2009 4:12 PM
> Subject: Re: [pgsql-es-ayuda] like no funciona
>
>
> El día 28 de noviembre de 2009 15:09, suso <jlcubas(at)terra(dot)es> escribió:
>> Esto me devuelve 0, ya qu eno es 'PE', esto sería la/s primera/s
>> letra/s del
>> capo apellido, eber ser una variable, ya que yo no sé si va a ser PE,
>> o LO,
>> P sola o cualquiera sabe que letra/s
>> No sé si me explico, por eso nmo puede ser 'PE', debe ser ' & apelli
>> &'...
>> o el nombre de variable que qrerramos, peo no puede ser literal
>> si pongo 'PE' (no me hace falta hacer conversion) me da exatamente
>> los que
>> tengo, pero como digo más arriba, no pued eser así(sólo a efectos de
>> prueba)
>>>
>>> El día 28 de noviembre de 2009 12:57, suso <jlcubas(at)terra(dot)es> escribió:
>>>
>>>>
>>>> Me sigue dando 0 registros, el like no reconoce o no hace la
>>>> comparación
>>>> correctamente, ya que si pongo(a efectos de prueba)
>>>> LIKE 'P&' puede ser P, o L o la letra que sea
>>>> esto funciona perfectamente
>>>> si hago la asignación a través del parámetro de la function, ahí es
>>>> donde
>>>> falla
>>>>
>>>
>>>
>>> SELECT * FROM
>>> prueba
>>> WHERE
>>> apelli like ('PE' || '%')::text;
>>>
>>>
>
> lo que te pase es un set de prueba, en vez de 'PE', proba poniendo
> apelli...
>
>
>>> Probá ponerlo todo entre paréntesis..
>>>
>>
>> --
>> TIP 8: explain analyze es tu amigo
>>
>
>
>


From: "AntonioG" <antoniog(at)adinet(dot)com(dot)uy>
To: "Emanuel Calvo Franco" <postgres(dot)arg(at)gmail(dot)com>, "suso" <jlcubas(at)terra(dot)es>
Cc: "PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 18:39:49
Message-ID: C86FD2B9F1664767B44E6671CAD452DD@5mentarios
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Ahora calente los motores y paso una rutina (VB6) que selecciona de un
caracter a varios.

Public Sub Filtrar()
Orden = "asc"
If rs.State = adStateOpen Then rs.Close
sql = "SELECT * FROM dt_socio WHERE " & Campo & " like '" & Por & "'
ORDER BY " & Campo & " "
rs.Open sql, cnn, adOpenStatic, adLockOptimistic
Call CargarListView(frmInicial.ListV, rs)
End Sub

Si no es esto de lo que hablan, ruego me disculpen.

Cordialmente

Antonio

----- Original Message -----
From: "AntonioG" <antoniog(at)adinet(dot)com(dot)uy>
To: "Emanuel Calvo Franco" <postgres(dot)arg(at)gmail(dot)com>; "suso"
<jlcubas(at)terra(dot)es>
Cc: "PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Saturday, November 28, 2009 4:28 PM
Subject: Re: [pgsql-es-ayuda] like no funciona

> Estimados, este ejemplo funciona
>
> SELECT cod_socio,apellido,nombre
> FROM dt_socio
> WHERE apellido LIKE '%GUI%'
>
> Cordialmente
>
> Antonio
>
>
> ----- Original Message -----
> 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>
> Sent: Saturday, November 28, 2009 4:12 PM
> Subject: Re: [pgsql-es-ayuda] like no funciona
>
>
> El día 28 de noviembre de 2009 15:09, suso <jlcubas(at)terra(dot)es> escribió:
>> Esto me devuelve 0, ya qu eno es 'PE', esto sería la/s primera/s letra/s
>> del
>> capo apellido, eber ser una variable, ya que yo no sé si va a ser PE, o
>> LO,
>> P sola o cualquiera sabe que letra/s
>> No sé si me explico, por eso nmo puede ser 'PE', debe ser ' & apelli
>> &'...
>> o el nombre de variable que qrerramos, peo no puede ser literal
>> si pongo 'PE' (no me hace falta hacer conversion) me da exatamente los
>> que
>> tengo, pero como digo más arriba, no pued eser así(sólo a efectos de
>> prueba)
>>>
>>> El día 28 de noviembre de 2009 12:57, suso <jlcubas(at)terra(dot)es> escribió:
>>>
>>>>
>>>> Me sigue dando 0 registros, el like no reconoce o no hace la
>>>> comparación
>>>> correctamente, ya que si pongo(a efectos de prueba)
>>>> LIKE 'P&' puede ser P, o L o la letra que sea
>>>> esto funciona perfectamente
>>>> si hago la asignación a través del parámetro de la function, ahí es
>>>> donde
>>>> falla
>>>>
>>>
>>>
>>> SELECT * FROM
>>> prueba
>>> WHERE
>>> apelli like ('PE' || '%')::text;
>>>
>>>
>
> lo que te pase es un set de prueba, en vez de 'PE', proba poniendo
> apelli...
>
>
>>> Probá ponerlo todo entre paréntesis..
>>>
>>
>> --
>> TIP 8: explain analyze es tu amigo
>>
>
>
>
> --
> Emanuel Calvo Franco
> DBA at: www.siu.edu.ar
> www.emanuelcalvofranco.com.ar
> --
> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>
> --
> Estoy utilizando la versión gratuita de SPAMfighter para usuarios
> privados.
> Hasta ahora ha bloqueado 629 spam y me ha ahorrado mucho tiempo.
> Ya somos 6 millones de usuarios en todo el mundo, ¡Únete a nosotros!.
> Puedes descargar la versión gratis : http://www.spamfighter.com/les
> Los usuarios de pago no tienen esta firma.
>
>
> --
> TIP 5: Has ledo nuestro extenso FAQ?
> http://www.postgresql.org/docs/faqs.FAQ.html

--
Estoy utilizando la versión gratuita de SPAMfighter para usuarios privados.
Hasta ahora ha bloqueado 629 spam y me ha ahorrado mucho tiempo.
Ya somos 6 millones de usuarios en todo el mundo, ¡Únete a nosotros!.
Puedes descargar la versión gratis : http://www.spamfighter.com/les
Los usuarios de pago no tienen esta firma.


From: suso <jlcubas(at)terra(dot)es>
To: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona -- SOLUCIONADO
Date: 2009-11-28 18:47:02
Message-ID: 4B117026.20502@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Emanuel, es para hacerte un monumento, por la increible paciencia que
has tenido:
ESTA SI FUNCIONA.
Lo probé desde pgadmin, como siempre y sin problemas, y corroborado
desde mi programa, hecho en vb6, me devuelve la cantidad exacta, como
era de esperar:)
MUCHISIMAS GRACIAS
Saludos
Suso
> El día 28 de noviembre de 2009 15:28, suso <jlcubas(at)terra(dot)es> escribió:
>
>> No me funciona, sustituí, como te comenté el PE por ('|| apelli' || '%')
>> SELECT INTO devuel COUNT(*) AS totalreg from pacientes where pacientes.apell
>> like ('" || apelli || "%')::text;
>>
>
> no, te tiene que quedar:
>
> like (apelli || '%')::Text;
>
>
>
>


From: Julio Cesar Rodriguez Dominguez <jurasec(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 18:52:27
Message-ID: 925902880911281052m139c8793ud8182486b718941d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El 28 de noviembre de 2009 12:19, suso <jlcubas(at)terra(dot)es> escribió:

> Hola Juliom claro, precisamente por eso quiero saber si tiene ams de "X"
> cantidad o menos, pq si tengo muchos, en el offset voy asignando una
> fracción de esa cantidad, pero si asigno mas de los que tengo..cae y no
> funciona, no?

Prueba de nuevo esta función:

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||'%';
end if;

if found then
return devuel;
else
return 0;
end if;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;


From: suso <jlcubas(at)terra(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: like no funciona
Date: 2009-11-28 18:53:32
Message-ID: 4B1171AC.7050901@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

En vb6 si lo tenía solucionado, tenia la consulta se paso paso a posgres con adodb y me devuelve
un recordset completo, claro, con "tropientos registros"
Como tu pones debajo, es como lo tenía yo, epro te devuelve un rrecordset con todos los
registros coincidintes, en principio, para mi quizás valdría, podría llegar a obtener alrededor
de 1000 o 2000 registros de una sola consulta, no sé si será poco o mucho par ael tráfico de
red, considerando que pueden ser 10 o 20 usuarios con el mismo tema a la vez(mo muy dificil,
pero...)
El amigo Enmanuel me pasó un código dsde postgres, que me devuelve sólo la cantidad de
registros, para poder hacer paginación en caso necesario.
Gracias
Un saludo
Suso
> Ahora calente los motores y paso una rutina (VB6) que selecciona de un
> caracter a varios.
>
> Public Sub Filtrar()
> Orden = "asc"
> If rs.State = adStateOpen Then rs.Close
> sql = "SELECT * FROM dt_socio WHERE " & Campo & " like '" & Por & "'
> ORDER BY " & Campo & " "
> rs.Open sql, cnn, adOpenStatic, adLockOptimistic
> Call CargarListView(frmInicial.ListV, rs)
> End Sub
>
> Si no es esto de lo que hablan, ruego me disculpen.
>
> Cordialmente
>
> Antonio
>
>
>
>
> ----- Original Message ----- From: "AntonioG" <antoniog(at)adinet(dot)com(dot)uy>
> To: "Emanuel Calvo Franco" <postgres(dot)arg(at)gmail(dot)com>; "suso"
> <jlcubas(at)terra(dot)es>
> Cc: "PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
> Sent: Saturday, November 28, 2009 4:28 PM
> Subject: Re: [pgsql-es-ayuda] like no funciona
>
>
>> Estimados, este ejemplo funciona
>>
>> SELECT cod_socio,apellido,nombre
>> FROM dt_socio
>> WHERE apellido LIKE '%GUI%'
>>
>> Cordialmente
>>
>> Antonio
>>
>>
>> ----- Original Message ----- 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>
>> Sent: Saturday, November 28, 2009 4:12 PM
>> Subject: Re: [pgsql-es-ayuda] like no funciona
>>
>>
>> El día 28 de noviembre de 2009 15:09, suso <jlcubas(at)terra(dot)es> escribió:
>>> Esto me devuelve 0, ya qu eno es 'PE', esto sería la/s primera/s
>>> letra/s del
>>> capo apellido, eber ser una variable, ya que yo no sé si va a ser PE,
>>> o LO,
>>> P sola o cualquiera sabe que letra/s
>>> No sé si me explico, por eso nmo puede ser 'PE', debe ser ' & apelli
>>> &'...
>>> o el nombre de variable que qrerramos, peo no puede ser literal
>>> si pongo 'PE' (no me hace falta hacer conversion) me da exatamente
>>> los que
>>> tengo, pero como digo más arriba, no pued eser así(sólo a efectos de
>>> prueba)
>>>>
>>>> El día 28 de noviembre de 2009 12:57, suso <jlcubas(at)terra(dot)es> escribió:
>>>>
>>>>>
>>>>> Me sigue dando 0 registros, el like no reconoce o no hace la
>>>>> comparación
>>>>> correctamente, ya que si pongo(a efectos de prueba)
>>>>> LIKE 'P&' puede ser P, o L o la letra que sea
>>>>> esto funciona perfectamente
>>>>> si hago la asignación a través del parámetro de la function, ahí es
>>>>> donde
>>>>> falla
>>>>>
>>>>
>>>>
>>>> SELECT * FROM
>>>> prueba
>>>> WHERE
>>>> apelli like ('PE' || '%')::text;
>>>>
>>>>
>>
>> lo que te pase es un set de prueba, en vez de 'PE', proba poniendo
>> apelli...
>>
>>
>>>> Probá ponerlo todo entre paréntesis..
>>>>
>>>
>>> --
>>> TIP 8: explain analyze es tu amigo
>>>
>>
>>
>>
>> --
>> Emanuel Calvo Franco
>> DBA at: www.siu.edu.ar
>> www.emanuelcalvofranco.com.ar
>> --
>> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>>
>> --
>> Estoy utilizando la versión gratuita de SPAMfighter para usuarios
>> privados.
>> Hasta ahora ha bloqueado 629 spam y me ha ahorrado mucho tiempo.
>> Ya somos 6 millones de usuarios en todo el mundo, ¡Únete a nosotros!.
>> Puedes descargar la versión gratis : http://www.spamfighter.com/les
>> Los usuarios de pago no tienen esta firma.
>>
>>
>> --
>> TIP 5: Has ledo nuestro extenso FAQ?
>> http://www.postgresql.org/docs/faqs.FAQ.html
>
>
> --
> Estoy utilizando la versión gratuita de SPAMfighter para usuarios privados.
> Hasta ahora ha bloqueado 629 spam y me ha ahorrado mucho tiempo.
> Ya somos 6 millones de usuarios en todo el mundo, ¡Únete a nosotros!.
> Puedes descargar la versión gratis : http://www.spamfighter.com/les
> Los usuarios de pago no tienen esta firma.
>
>
>
> __________ Informaci�n de ESET Smart Security, versi�n de la base de
> firmas de virus 4645 (20091128) __________
>
> ESET Smart Security ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
>


From: suso <jlcubas(at)terra(dot)es>
To: Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com>
Cc: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 19:02:03
Message-ID: 4B1173AB.3020408@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Si, funciona, lo acaba de probar, el amigo Emmanuel, me lo posteó hace unos minutos, y funciona
perfecto:)
Muchas gracias a ambos por su increible paciencia y conocimientos:)
Un saludo
Suso
> El 28 de noviembre de 2009 12:19, suso <jlcubas(at)terra(dot)es
> <mailto:jlcubas(at)terra(dot)es>> escribió:
>
> Hola Juliom claro, precisamente por eso quiero saber si tiene ams de
> "X" cantidad o menos, pq si tengo muchos, en el offset voy asignando
> una fracción de esa cantidad, pero si asigno mas de los que
> tengo..cae y no funciona, no?
>
>
> Prueba de nuevo esta función:
>
> 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||'%';
> end if;
>
> if found then
> return devuel;
> else
> return 0;
> end if;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;


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 -- SOLUCIONADO
Date: 2009-11-28 19:44:06
Message-ID: f205bb120911281144t6c12caedodc6b8a6a9fe24dc0@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El día 28 de noviembre de 2009 15:47, suso <jlcubas(at)terra(dot)es> escribió:
> Emanuel, es para hacerte un monumento, por la increible paciencia que has
> tenido:
> ESTA SI FUNCIONA.
> Lo probé desde pgadmin, como siempre y sin problemas, y corroborado desde mi
> programa, hecho en vb6, me devuelve la cantidad exacta, como era de
> esperar:)
> MUCHISIMAS GRACIAS

De nada!

> Saludos
> Suso
>>
>> El día 28 de noviembre de 2009 15:28, suso <jlcubas(at)terra(dot)es> escribió:
>>
>>>
>>> No me funciona, sustituí, como te comenté el PE por ('|| apelli' || '%')
>>> SELECT INTO devuel COUNT(*) AS totalreg from pacientes where
>>> pacientes.apell
>>> like ('" || apelli || "%')::text;
>>>
>>
>> no, te tiene que quedar:
>>
>> like (apelli || '%')::Text;
>>
>>
>>
>>
>
>

--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar