Important! This is an automatic machine translated page. If you can read english, you should Click Here to read the original English version of the article.

Search For Rows With Special Characters in SQL Server Căutare pentru rânduri cu caractere speciale în SQL Server

While troubleshooting a programming problem today I noticed that you can't use a LIKE search for string columns containing special characters like % or _ without using a special syntax. În timp ce Rezolvarea problemelor de o problemă de programare astăzi, am observat că nu puteţi folosi o căutare ca pentru coloane string conţinând caractere speciale cum ar fi% sau _ fără a utiliza o sintaxă specială. Figuring out the problem took only a few minutes, but remembering syntax is always easier if you write about it. Imaginind problema a durat doar câteva minute, dar amintindu-şi de sintaxă este întotdeauna mai uşor dacă aţi scrie despre el.

So yes, this post is solely for my benefit. Asa ca, da, acest post este numai pentru beneficiul meu. Hopefully it will help somebody else too. Sperăm că aceasta va ajuta altcineva de asemenea.

Let's say you want to find any fields that contain the text “100%”, so you put together this query: Să presupunem că doriţi să găsiţi orice câmpurile care conţin textul "100%", asa ca tu a pune împreună această interogare:

SELECT * FROM tablename WHERE fieldname LIKE '%100%%' SELECT * FROM TABLENAME% place unde fieldname '% 100%'

Instead of what you wanted, you'll get all the rows that contain “100″ as well as the rows that contain “100%”. În loc de ceea ce ai vrut, veţi obţine toate rândurile care conţin "100", precum şi rândurile care conţin "100%".

The problem here is that SQL Server uses the percent sign, underscore, and square brackets as special characters. Problema aici este că SQL Server foloseşte semnul procent, de subliniere, şi parantezele pătrate ca caractere speciale. You simply can't use them as a plain character in a LIKE query without escaping them. Puteţi pur şi simplu nu le pot utiliza ca un personaj simplu într-o interogare SIMILAR, fără a scăpa de ele.

Square Bracket Escape Square Bracket Escape

You can surround the % or _ with square brackets to tell SQL Server that the character inside is a regular character. Aveţi posibilitatea să înconjoară% sau _ cu paranteze drepte să-ţi spun SQL Server care personajul din interiorul este un caracter regulat.

SELECT * FROM tablename WHERE fieldname LIKE '%100[%]%' SELECT * FROM TABLENAME% place unde fieldname "100 [%]%'

T-SQL ESCAPE Syntax T-SQL ESCAPE Sintaxa

Alternatively, you can append the ESCAPE operator onto your query, and add a \ character before the value you want to escape. Alternativ, puteţi adăuga operatorul ESCAPE pe interogare, şi a adăuga un caracter \ înainte de valoarea pe care doriţi să scape.

SELECT * FROM tablename WHERE fieldname LIKE '%100\%%' ESCAPE '\' SELECT * FROM TABLENAME% place unde fieldname "100% \% 'ESCAPE' \ '

The ESCAPE '\' part of the query tells the SQL engine to interpret the character after the \ as a literal character instead of as a wildcard. ESCAPE '\' o parte din interogarea spune motorul SQL pentru a interpreta caracterul după \ ca un personaj literală în loc de ca un wildcard.

Personally I find the second method easier to deal with, and you can use it to escape a square bracket as well. Personal, mi se pare a doua metodă mai uşor pentru a face faţă, şi îl puteţi folosi pentru a scăpa o categorie de pătrat, de asemenea.

This article was originally written on 11/8/07 Tagged with: Acest articol a fost scris iniţial pe 11.8.07 Etichetate cu: The Geek Blog Blog Geek

Daily Email Updates Daily Actualizări de email

You can get our how-to articles in your inbox each day for free. Aveţi posibilitatea să obţineţi modul nostru de-a articole în Inbox în fiecare zi pentru drum liber. Just enter your name and email below: Doar introduceţi numele dvs. şi e-mail de mai jos:


Name: Nume:
Email: E-mail:

Comments (2) Comentarii (2)

  1. Whatever-ishere Oricare ar fi-ishere

    thanks for the GREAT post! Multumesc pentru mare post! Very useful… Foarte util ...

  2. Ashutosh Mahamia Ashutosh Mahamia

    This write up was extremely beneficial for me . Acest lucru a scrie sus a fost extrem de benefic pentru mine. Thanks for writing it. Vă mulţumim pentru scris-o. Keep it up. Keep it up.


Our Friends Our Friends
Getting Started Noţiuni de bază


About How-To Geek Despre "Cum să" Geek
What Is That Process? Ce este acest proces?
svchost.exe svchost.exe
jusched.exe winampa.exe
dwm.exe dwm.exe
ctfmon.exe ctfmon.exe
wmpnetwk.exe wmpnetwk.exe
wmpnscfg.exe wmpnscfg.exe
rundll32.exe rundll32.exe
wfcrun32.exe wfcrun32.exe
Ipoint.exe Ipoint.exe
Itype.exe Itype.exe
Wfica32.exe Wfica32.exe
Mobsync.exe Mobsync.exe
conhost.exe conhost.exe
Dpupdchk.exe Dpupdchk.exe Adobe_Updater.exe Adobe_Updater.exe

Copyright © 2006-2009 HowToGeek.com. Copyright © 2006-2009 HowToGeek.com. All Rights Reserved. Toate drepturile rezervate.