Pregunta

Me parece bastante extraño en Microsoft SQL Server:

SELECT * FROM deliveries WHERE code LIKE '01999195000%'
-- 9 rows returned. Works.

DECLARE @a VARCHAR(10)
SET @a='01999195000%'
SELECT * FROM deliveries WHERE code LIKE @a
-- 0 rows returned? Why not?

SET @a = '01999195000'
SELECT * FROM deliveries WHERE code LIKE @a + '%'
-- 9 rows returned. Works.

¿Cuál es la diferencia entre la búsqueda de @a que incluye el carácter%, y uno que no lo hace, pero tiene '%' anexado?

Si alguno de ustedes de SQL Guru podrían compartir sus pensamientos, que sería grande.

¿Fue útil?

Solución

Es porque usted ha definido como un @ un VARCHAR (10), pero usted ha intentado poner 12 caracteres en ella ... es decir, el "%" se pierde desde el extremo

Otros consejos

DECLARE @a VARCHAR (10) es la respuesta. @ un nunca contiene el%.

LIKE es un carácter comodín, que significa "algo que como aquí".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top