SQL Server - ayuda con like

 
Vista:

ayuda con like

Publicado por Letty (48 intervenciones) el 05/08/2010 20:15:00
hola
necesito encontrar todos los tipos que en su descripcion tengan "vta"
cuando lo defino fijo funciona perfecto, pero como hago a travez de un parametro
el valor de @param1 es "%vta%
como puedo agregar el "('" y el "')"

else if @Accion = 'MS3'
SELECT CPO03,(CPO01) as Clave, (CPO02) as Nombre
FROM CCPO01
WHERE CPO02 LIKE ('%vta%') AND CPO04 <> 'Baja'
ORDER BY CPO01

else if @Accion = 'MS4'
SELECT CPO03, (CPO01) as Clave, (CPO02) as Nombre
FROM CCPO01
WHERE CPO02 LIKE @param1 AND CPO04 <> 'Baja'
ORDER BY CPO02
MIL GRACIAS
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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:ayuda con like

Publicado por Isaias (4558 intervenciones) el 05/08/2010 20:47:52
Hola Letty

Los parentesis son OPCIONALES, no requeridos, aun asi, puedes hacerlo de esta forma:

CREATE TABLE #Nombres (Name varchar(50))

INSERT INTO #Nombres VALUES ('Norma Garcia')
INSERT INTO #Nombres VALUES ('Letty Gonzalez')
INSERT INTO #Nombres VALUES ('Adriana Mendez')
INSERT INTO #Nombres VALUES ('Karen Danae Canuto')

DECLARE @NombreParcial varchar(10)
SET @NombreParcial = 'NAE'

SELECT * FROM #Nombres
WHERE Name like ('%' + @NombreParcial + '%')
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
sin imagen de perfil
Val: 4
Ha disminuido su posición en 43 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:ayuda con like

Publicado por Leonardo Josue (79 intervenciones) el 05/08/2010 20:53:21
Hola Letty, no es necesario poner los paréntesis para utilizar el operador like, prueba con esto, te debería funcionar:

Declare @Param1 varchar(5)
set @Param1 = '%vta%'
SELECT CPO03, CPO01 as Clave, CPO02 as Nombre
FROM CCPO01
WHERE CPO02 LIKE @Param1 AND CPO04 <> 'Baja'
ORDER BY CPO01

El problema puede estar en la declaración del parámetro. un error típico es colocar el parámetro sólo como tipo varchar, pero sin especificar la longitud, en tal caso SQL Server sólo toma el primer caracter. Dos ejemplos:

declare @cinLongitud varchar
declare @conLongitud varchar(5)
set @sinLongitud = '12345'
set @conLongitud = '12345'
print @sinLongitud
print @conLongitud

El resultado de esto sería
1
12345

Si continuas con problemas, comentalo en el foro.

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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:ayuda con like

Publicado por Isaias (4558 intervenciones) el 06/08/2010 19:24:15
Las comparaciones realizadas con <>, se deben dejar como ultima alternativa, ya que no son recomendables por el performance que dan.
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

JIJIJI, YA QUEDO, MUCHAS GRACIAS

Publicado por Letty (48 intervenciones) el 06/08/2010 18:23:35
GRACIAS CHICOS
DIOS LOS BENDIGA
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