SQL Server - BUSQUEDA CON LIKE

   
Vista:

BUSQUEDA CON LIKE

Publicado por Diego (4 intervenciones) el 26/08/2010 20:37:21
Hola a todos
tengo la siguiente consulta

declare @CrName varchar(100) = 'ASDOSP'

if (select @CrName) like '%_OSP%'
begin
print 'ERROR'
end

llega por error cuando ejecuto la consulta

se entiende? la variable esta cargada con el valor 'ASDOSP' y el like busca por '%_OSP%' y el valor es verdadero.

Es como si no estuviera incoorporando el guion bajo al like.

Alguien sabe como hacer para que quede incluido el guion bajo en el like?

Ademas probe poniendo una N adelante del like pero tmapoco funciono (like N'%_OSP%')
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

RE:BUSQUEDA CON LIKE

Publicado por Isaias (3182 intervenciones) el 26/08/2010 22:23:45
Si consultas tu ayuda en linea, indica que debes especificar tu guion bajo entre corchetes:

'%[_]OSP%
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BUSQUEDA CON LIKE

Publicado por Diego (4 intervenciones) el 26/08/2010 22:33:44
Funciona Perfecto, Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BUSQUEDA CON LIKE

Publicado por Leonardo Josué (79 intervenciones) el 27/08/2010 00:05:18
Afortunadamente Isaías ya te dio la solución a tu problema, pero sólo como comentario adicional te comento por qué no funcionaba tu consulta, para que en el futuro no te vuelva a pasar.

El guión bajo utilizado en la función like es utilizado como "comodín" es decir que cualquier caracter es permitido en esa posición.

la condición que tienes (con tres guiones bajos) indicaría algo así como "una cadena que tenga la letra A en la cuarta posición sin importar el contenido de las primeras tres posiciones"

declare @CrName varchar(100)
set @CrName = 'ABCA'
if (select @CrName)
begin
print 'ERROR 1'
end
set @CrName = 'ABCB'
if (select @CrName) like '___A'
begin
print 'ERROR 2'
end

Así solo se imprimiría ERROR 1

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fe de Erratas

Publicado por Leonardo Josué (79 intervenciones) el 27/08/2010 00:18:58
Una disculpa, "cuando digo la condición que tienes" en realidad se refiere a la siguiente condición que puse de ejemplo like '___A'

En tu caso la condición like '%_OSP%' sería algo así como "una cadena que tenga una longitud de al menos 4 caracteres, y que finalice con OSP sin importar el contenido de los caracteres iniciales"

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:Fe de Erratas

Publicado por Isaias (3182 intervenciones) el 27/08/2010 05:11:04
Es correcta tu explicacion, pero me gustaria que los foristas, consultaran antes su ayuda en linea, como primera opcion y despues, de analizar y buscar, vinieran a consultarnos la duda.

Saludos a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fe de Erratas

Publicado por Leonardo Josué (79 intervenciones) el 27/08/2010 16:28:05
Buenos días Isaías.

Es correcto tu planteamiento, lo ideal es que los foristas primero busquen la solución en su ayuda en línea y si no encuentran lo que necesitan entonces sí acudir a los foros, sin embargo y sin ánimos de entrar en polémicas te hago la siguiente observación:

Tú le diste la solución al compañero Diego, haciendo énfasis en que su hubiera buscado en la ayuda lo hubiera podido encontrar, hasta ahí todo está perfecto, pero mi intención al contestar el post era ir más allá, y señalarle a Diego en donde estaba su error y el uso que en un futuro pueda darle al operador _ en la función like.

Cuando contesto algún post siempre trato de ir más allá de simplemente dar la solución, tratar de dar algunos ejemplos y consejos que ayuden a los foristas a aprender algo más, sin importar que tengas que escribir tres o más párrafos.

Pero de cualquier manera gracias por los comentarios Isaías.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:Fe de Erratas

Publicado por Isaias (3182 intervenciones) el 27/08/2010 20:52:32
Estoy 100% de acuerdo contigo, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar