consulta SQL de textos

10/10/2006 - 00:02 por Gastoncito | Informe spam
Hola

Tengo una tabla con un Campo "DESCRIPCION" de nvarchar(60), sqlserver 2000

en este campo guardo descripciones de articulos, y quiero realizar una
busqueda por partes del texto
por ejemplo, si el usuario busca "autos rojos"

podrìa hacer el select de la siguiente manera

"Select * from miTabla where DESCRIPCION like '%autos rojos%'

sin embargo
quisiera tambien buscar los registros en los cuales figuren
'autos' y 'rojos'

o solamente alguna de las dos palabras

se podrà realizar esto en una sola instrucciòn?
o debo realizar un SP o una funcion de usuario?

PD: si no ees mucho pedir, tambien me gustaria una especie de ranking de los
resultados...
es decir si el registro tuviese "autos rojos", tendrìa que estar por
encima del que solamente tiene la palabra "auto"

Muchas Gracias
 

Leer las respuestas

#1 Javier Loria
10/10/2006 - 06:44 | Informe spam
Hola:
Algo como:
==SELECT *
, CASE WHEN Descripcion LIKE '%autos rojos%' THEN 3
WHEN Descripcion LIKE '%autos%' AND Descripcion LIKE
'rojos%' THEN 2
ELSE 1 END AS Ranking
FROM MiTabla
WHERE Descripcion LIKE '%autos%'
OR Descripcion LIKE '%rojos%'
== Entonces el SELECT retornara todos los teto que tengan cualquiera de las
dos palabras, si las tienen juntas el ranking sera 3,
si tienen las dos palabras pero en diferente lugar te da 2, y si solo tiene
una de las dos el ranking sera 1.
Espero se entienda,

Javier Loria
Costa Rica-MVP
Solid Quality Learning
"Gastoncito" wrote in message
news:%230kLs6%
Hola

Tengo una tabla con un Campo "DESCRIPCION" de nvarchar(60), sqlserver
2000

en este campo guardo descripciones de articulos, y quiero realizar una
busqueda por partes del texto
por ejemplo, si el usuario busca "autos rojos"

podrìa hacer el select de la siguiente manera

"Select * from miTabla where DESCRIPCION like '%autos rojos%'

sin embargo
quisiera tambien buscar los registros en los cuales figuren
'autos' y 'rojos'

o solamente alguna de las dos palabras

se podrà realizar esto en una sola instrucciòn?
o debo realizar un SP o una funcion de usuario?

PD: si no ees mucho pedir, tambien me gustaria una especie de ranking de
los resultados...
es decir si el registro tuviese "autos rojos", tendrìa que estar por
encima del que solamente tiene la palabra "auto"

Muchas Gracias

Preguntas similares