Pergunta

Eu acho isso muito estranho no 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.

O que é diferente entre a busca de @a que inclui o caractere%, e um que não faz, mas tem '%' anexado?

Se algum de vocês do SQL Guru poderia compartilhar seus pensamentos, isso seria ótimo.

Foi útil?

Solução

É porque você definiu @a como um VARCHAR (10), mas você já tentou colocar 12 caracteres para ele ... ou seja, o "%" se perde a partir do final

Outras dicas

DECLARE @a VARCHAR (10) é a resposta. @a não contém o%.

COMO é um carácter universal, que significa "o que quiser aqui."

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top