operador LIKE '% %'

18/01/2005 - 16:49 por Rick | Informe spam
que tal colegas una cosa que me saca de onda

tengo una tabla(factura) con 4 registros los cuales son
(int) (varchar 40)
factura nombre
1 richlandia
2 test
3 jorge
4 richilandia 4 ever

ejecuto la siguiente sentencia
select * from factura where nombre like '%ric%'

pero solo me regresa 1 registro en lugar de regresarme 2 registros, me
regresa el registro 4,
que estoy haciendo mal??

y si hago esto
select * from factura where nombre like '%land%'

me regresa los 2 registros que cumplen con la condicion (1 y 4)

el uso de los caracteres % segun tengo entendido son comodines para que
antes o despues de donde se usen pueda estar cualquier caracter(es)
en este caso digo lo que sea que este al principio luego ric luego lo que
sea pero como que tiene algun lio cuando no tiene nada al principio

uso sql server 2000 con sp3, winxp sp2 y vb6
esto lo hago desde vb y desde el editor de consultas y en ambos casos
obtengo los mismos resultados x lo k creo que puedo tener algun error en mi
sentencia

alguien me puede ayudar por favor?

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
18/01/2005 - 17:12 | Informe spam
No repro, funciona OK devolviendo los 2 registros.

USE tempdb
GO

CREATE TABLE factura (factura INT, nombre VARCHAR(40))
GO

INSERT factura VALUES (1, 'richlandia')
INSERT factura VALUES (2, 'test3')
INSERT factura VALUES (3, 'jorge')
INSERT factura VALUES (4, 'richlandia2')
GO

SELECT * FROM factura WHERE nombre LIKE '%ric%'


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.



"Rick" wrote in message
news::
que tal colegas una cosa que me saca de onda

tengo una tabla(factura) con 4 registros los cuales son
(int) (varchar 40)
factura nombre
1 richlandia
2 test
3 jorge
4 richilandia 4 ever

ejecuto la siguiente sentencia
select * from factura where nombre like '%ric%'

pero solo me regresa 1 registro en lugar de regresarme 2 registros, me
regresa el registro 4,
que estoy haciendo mal??

y si hago esto
select * from factura where nombre like '%land%'

me regresa los 2 registros que cumplen con la condicion (1 y 4)

el uso de los caracteres % segun tengo entendido son comodines para que
antes o despues de donde se usen pueda estar cualquier caracter(es)
en este caso digo lo que sea que este al principio luego ric luego lo que

sea pero como que tiene algun lio cuando no tiene nada al principio

uso sql server 2000 con sp3, winxp sp2 y vb6
esto lo hago desde vb y desde el editor de consultas y en ambos casos
obtengo los mismos resultados x lo k creo que puedo tener algun error en
mi
sentencia

alguien me puede ayudar por favor?
Respuesta Responder a este mensaje
#2 Lesca, Carlos David
18/01/2005 - 17:14 | Informe spam
Hola Rick

Mira, yo he probado desde el Analizador de Consultas ya que las
aplicaciones no las hago en VB, pero me ha funcionado perfectamente con el
ejemplo que vos mandas, realmente no se cual es el erro ya que esta bien
escrito. como vos decis el % es un comodin, pero no importa si hay algo
delante o no como es el caso de '%ric%' ya que al no tener nada ese comodin
no se utiliza, por decirlo de alguna manera.

Re repito, en ambos casos me funciono bien desde el Analizador de
Consultas. De todas maneras deberias tener cuidad con el usu de % ya que
bajan mucho la performance del servidor y si tenes tablas con muchos
registros esto podrias perjudicar la aplicacion.

Aqui te envio la prueba que hice, que es exactamente igual a tu ejemplo.

Saludos.

drop table #factura
go
create table #factura (factura int ,nombre char(30))
go
insert into #factura select 1,'richlandia'
go
insert into #factura select 2,'test'
go
insert into #factura select 3,'jorge'
go
insert into #factura select 4,'richilandia 4 ever'
go

select * from #factura where nombre like '%ric%'


El resultado es:

factura nombre
1 richlandia
4 richilandia 4 ever

(2 filas afectadas)

select * from #factura where nombre like '%land%'

El resultado es

factura nombre
1 richlandia
4 richilandia 4 ever

(2 filas afectadas)


"Rick" escribió en el mensaje
news:eBqxjUX$
que tal colegas una cosa que me saca de onda

tengo una tabla(factura) con 4 registros los cuales son
(int) (varchar 40)
factura nombre
1 richlandia
2 test
3 jorge
4 richilandia 4 ever

ejecuto la siguiente sentencia
select * from factura where nombre like '%ric%'

pero solo me regresa 1 registro en lugar de regresarme 2 registros, me
regresa el registro 4,
que estoy haciendo mal??

y si hago esto
select * from factura where nombre like '%land%'

me regresa los 2 registros que cumplen con la condicion (1 y 4)

el uso de los caracteres % segun tengo entendido son comodines para que
antes o despues de donde se usen pueda estar cualquier caracter(es)
en este caso digo lo que sea que este al principio luego ric luego lo que
sea pero como que tiene algun lio cuando no tiene nada al principio

uso sql server 2000 con sp3, winxp sp2 y vb6
esto lo hago desde vb y desde el editor de consultas y en ambos casos
obtengo los mismos resultados x lo k creo que puedo tener algun error en


mi
sentencia

alguien me puede ayudar por favor?



Respuesta Responder a este mensaje
#3 Rick
18/01/2005 - 17:35 | Informe spam
a caray a ambos les funciona
mmm
no se que hacer
le cambie el contenido a los campos por richie lo escribi en uno y lo pege
en otro y si hago la consulta
con '%r%' regresa 2 registros,
si la hago con '%ri%' regresa 2 registros,
luego la hice con '%ric%' y no regresa nada =(
no creo que sea palabra reservada...

sera que no me quiere mi pc????

"Rick" wrote in message
news:eBqxjUX$
que tal colegas una cosa que me saca de onda

tengo una tabla(factura) con 4 registros los cuales son
(int) (varchar 40)
factura nombre
1 richlandia
2 test
3 jorge
4 richilandia 4 ever

ejecuto la siguiente sentencia
select * from factura where nombre like '%ric%'

pero solo me regresa 1 registro en lugar de regresarme 2 registros, me
regresa el registro 4,
que estoy haciendo mal??

y si hago esto
select * from factura where nombre like '%land%'

me regresa los 2 registros que cumplen con la condicion (1 y 4)

el uso de los caracteres % segun tengo entendido son comodines para que
antes o despues de donde se usen pueda estar cualquier caracter(es)
en este caso digo lo que sea que este al principio luego ric luego lo que
sea pero como que tiene algun lio cuando no tiene nada al principio

uso sql server 2000 con sp3, winxp sp2 y vb6
esto lo hago desde vb y desde el editor de consultas y en ambos casos
obtengo los mismos resultados x lo k creo que puedo tener algun error en
mi sentencia

alguien me puede ayudar por favor?



Respuesta Responder a este mensaje
#4 ulises
18/01/2005 - 18:54 | Informe spam
Puede ser que tengas definido tu BD como case sensitive y
tengas la "c" en mayúscula ...

Saludos,
Ulises

a caray a ambos les funciona
mmm
no se que hacer
le cambie el contenido a los campos por richie lo escribi


en uno y lo pege
en otro y si hago la consulta
con '%r%' regresa 2 registros,
si la hago con '%ri%' regresa 2 registros,
luego la hice con '%ric%' y no regresa nada =(
no creo que sea palabra reservada...

sera que no me quiere mi pc????

"Rick" wrote in message
news:eBqxjUX$
que tal colegas una cosa que me saca de onda

tengo una tabla(factura) con 4 registros los cuales son
(int) (varchar 40)
factura nombre
1 richlandia
2 test
3 jorge
4 richilandia 4 ever

ejecuto la siguiente sentencia
select * from factura where nombre like '%ric%'

pero solo me regresa 1 registro en lugar de regresarme 2




registros, me
regresa el registro 4,
que estoy haciendo mal??

y si hago esto
select * from factura where nombre like '%land%'

me regresa los 2 registros que cumplen con la condicion




(1 y 4)

el uso de los caracteres % segun tengo entendido son




comodines para que
antes o despues de donde se usen pueda estar cualquier




caracter(es)
en este caso digo lo que sea que este al principio luego




ric luego lo que
sea pero como que tiene algun lio cuando no tiene nada




al principio

uso sql server 2000 con sp3, winxp sp2 y vb6
esto lo hago desde vb y desde el editor de consultas y




en ambos casos
obtengo los mismos resultados x lo k creo que puedo




tener algun error en
mi sentencia

alguien me puede ayudar por favor?







.

Respuesta Responder a este mensaje
#5 Rick
18/01/2005 - 22:25 | Informe spam
nop
de hecho lo hice con las palabras tanto en mayuscula como en minuscula y
sigue igual =(


"ulises" wrote in message
news:008301c4fd86$b7c39630$
Puede ser que tengas definido tu BD como case sensitive y
tengas la "c" en mayúscula ...

Saludos,
Ulises

a caray a ambos les funciona
mmm
no se que hacer
le cambie el contenido a los campos por richie lo escribi


en uno y lo pege
en otro y si hago la consulta
con '%r%' regresa 2 registros,
si la hago con '%ri%' regresa 2 registros,
luego la hice con '%ric%' y no regresa nada =(
no creo que sea palabra reservada...

sera que no me quiere mi pc????

"Rick" wrote in message
news:eBqxjUX$
que tal colegas una cosa que me saca de onda

tengo una tabla(factura) con 4 registros los cuales son
(int) (varchar 40)
factura nombre
1 richlandia
2 test
3 jorge
4 richilandia 4 ever

ejecuto la siguiente sentencia
select * from factura where nombre like '%ric%'

pero solo me regresa 1 registro en lugar de regresarme 2




registros, me
regresa el registro 4,
que estoy haciendo mal??

y si hago esto
select * from factura where nombre like '%land%'

me regresa los 2 registros que cumplen con la condicion




(1 y 4)

el uso de los caracteres % segun tengo entendido son




comodines para que
antes o despues de donde se usen pueda estar cualquier




caracter(es)
en este caso digo lo que sea que este al principio luego




ric luego lo que
sea pero como que tiene algun lio cuando no tiene nada




al principio

uso sql server 2000 con sp3, winxp sp2 y vb6
esto lo hago desde vb y desde el editor de consultas y




en ambos casos
obtengo los mismos resultados x lo k creo que puedo




tener algun error en
mi sentencia

alguien me puede ayudar por favor?







.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida