SQL заместващи символи
Така наречените заместващи символи се използват – не изненадващо – да заместят който и да е символ в даден низ. Тъй като на български израза заместващи символи не е точно като англоезичният термин, нека да изполваме занапред в урока англоезичният. И да не забравяме, че навсякъде по света се програмира на български! Ъмм… тоест на английски :). Та, тези заместващи символи се наричат wildcards.
Тези wildcards се използват с оператора LIKE
.
Операторът LIKE се използва в съчетание с клауза WHERE за търсене на даден шаблон в колона.
Има две wildcards, използвани в съчетание с оператора LIKE:
- % – знакът за процент представлява нула, един или няколко знака
- _ – долна черта представлява единичен знак
Забележка: MS Access използва въпросителен знак (?) вместо долна черта (_). В MS Access и SQL Server можете да използвате и:
- [charlist] – Определя множества и диапазони от символи, които да съответстват
- [^ charlist] или [! charlist] – Определя множества и диапазони на символите които НЕ съвпадат
wildcards могат да се използват и в комбинации! Ето няколко примера, показващи различни употреби с оператора LIKE и „%“ и „_“ wildcards:
LIKE Operator | Описание |
---|---|
WHERE CustomerName LIKE ‘a%’ | Намира коя да е стойност започваща с „a“ |
WHERE CustomerName LIKE ‘%a’ | Намира коя да е стойност завършваща с „a“ |
WHERE CustomerName LIKE ‘%or%’ | Намира коя да е стойност, която съдържа „or“ на която и да е позиция |
WHERE CustomerName LIKE ‘_r%’ | Намира коя да е стойност, която съдържа в себе си „r“ на втора позиция |
WHERE CustomerName LIKE ‘a_%_%’ | Намира коя да е стойност започваща с „a“ и е с дължина поне 3 символа |
WHERE ContactName LIKE ‘a%o’ | Намира коя да е стойност започваща с „a“ и завършва с „o“ |
Демо база данни
По-долу има селекция от таблицата „Customers“ в примерната база данни на Northwind:CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Използване на %
Следният SQL израз избира всички записи, от колоната City които започват с „ber“:
Следният SQL израз избира всички записи от колоната City, съдържащи шаблона „es“:
Използване на _
Следният SQL израз избира всички записи от колоната City, започващи с кой да е знак, последван от „erlin“:
Следният SQL израз избира всички записи от колоната City, започващи с „L“, следвани от кой да е знак, следван от „n“, следван от кой да е знак, следван от „on“:
Използване на [charlist] Wildcard
Следният SQL израз избира всички записи от колоната City, започващи с „b“, „s“ или „p“:
Следният SQL израз избира всички записи от колоната City, започващи с „a“, „b“ или „c“:
Използване на [!charlist] Wildcard
Следващите две SQL заявки селектират всички записи от колоната City, които НЕ започват с „b“, „s“, или „p“: