SQL Server Escape un Underscore

Cum scap de caracterul de subliniere?

Scriu ceva de genul următor în cazul clauzei și vreau să găsesc intrări efective cu _d la sfârșit.

Where Username Like '%_d'
0
fr hi bn

2 răspunsuri

T-SQL Reference for LIKE for SQL Server 2000:

Aveți posibilitatea să utilizați caractere potrivite ca caractere literale. Pentru a utiliza un caracter wildcard ca caracter literal, introduceți caracterul wildcard în paranteze. Tabelul prezintă mai multe exemple de utilizare a cuvântului cheie LIKE și a caracterelor [] wildcard.

Pentru cazul dvs.:

... LIKE '%[_]d'
0
adăugat

Evident, soluția @Lasse are dreptate, dar există o altă modalitate de a vă rezolva problema: Operatorul T-SQL LIKE definește opțional ESCAPE , care vă permite să declarați un caracter care va scăpa de caracterul următor în model.

În cazul dvs., următoarele clauze WHERE sunt echivalente:

WHERE username LIKE '%[_]d';            -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
0
adăugat
Pentru a completa imaginea: clauza ESCAPE face parte din standardul SQL și va funcționa pe orice DBMS, nu doar pe SQL Server.
adăugat autor a_horse_with_no_name, sursa