Perché il LIKE non restituire le righe per le variabili con '%' alla fine?
-
12-09-2019 - |
Domanda
Lo trovo piuttosto strano su 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.
Ciò che è diverso tra la ricerca di @a che comprende il carattere%, e uno che non lo fa, ma ha '%' aggiunto?
Se qualcuno di voi di SQL Guru potrebbe condividere i tuoi pensieri, che sarebbe grande.
Soluzione
E 'perché avete definito @a come VARCHAR (10), ma è provato a mettere 12 caratteri in esso ... che significa la "%" si perde dalla fine
Altri suggerimenti
DECLARE @a VARCHAR (10) è la risposta. @a mai contiene il%.
COME è un carattere jolly, che significa "qualcosa che ti piace qui".
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow