J'ai un comportement intéressant que j'aimerais mieux comprendre afin que je ne me bloque pas par mégarde.L'échappement double d'un caractère générique dans SQL annule l'échappement?
Ce qui suit est un exemple d'échapper à un « % » dans une clause WHERE:
select * from #z where b like '%e%' ESCAPE 'e'
Dans ce tableau avec les valeurs suivantes:
create table #z (a int, b varchar(10))
insert into #z values (1, 'e25%')
insert into #z values (2, '25')
insert into #z values (3, '18%')
insert into #z values (4, 'cab')
insert into #z values (5, '2%')
sélectionne les trois rangées avec le% en fin.
Cependant, si je remplace like '%e%'
par like 'ee%'
, il sélectionne uniquement la première ligne. Il semble donc que l'échappement double du% est comme un double négatif, et annule l'échappement, ramenant ainsi le% dans le caractère générique à nouveau. Est-ce que je comprends bien? Ou est-ce qu'il y a autre chose qui se passe ici?
C'est une belle une, @gbn . Le mettre dans ma boîte à outils pour une utilisation future. [clunk] – Cyberherbalist