¿Por qué le gusta que no devolver filas para las variables con '%' al final?
-
12-09-2019 - |
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.
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