SQL Wildcards
SQL Wildcard Characters
One or more characters in a string can be changed with a wildcard character.
The LIKE operator can be used with wildcard characters. In a WHERE clause, the LIKE operator is used to look for a given pattern in a column.
Example
Return all customers that starts with the letter ‘a’:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
Wildcard Characters
| Symbol | Description |
|---|---|
| % | Represents zero or more characters |
| _ | Represents a single character |
| [] | Represents any single character within the brackets * |
| ^ | Represents any character not in the brackets * |
| - | Represents any single character within the specified range * |
| {} | Represents any escaped character ** |
* Not supported in PostgreSQL and MySQL databases.
** Supported only in Oracle databases.
Demo Database
| 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 |
Using the % Wildcard
Any character, including zero characters, is represented by the % wildcard.
Example
Return all customers that ends with the pattern ‘es’:
SELECT * FROM Customers
WHERE CustomerName LIKE '%es';
Example
Return all customers that contains the pattern ‘mer’:
SELECT * FROM Customers
WHERE CustomerName LIKE '%mer%';
Using the _ Wildcard
Every _ indicates one and only one character; it can be any character or number.
The _ wildcard denotes a single character.
Example
Return all customers with a City starting with any character, followed by “ondon”:
SELECT * FROM Customers
WHERE City LIKE '_ondon';
Example
Return all customers with a City starting with “L”, followed by any 3 characters, ending with “on”:
SELECT * FROM Customers
WHERE City LIKE 'L___on';
Using the [] Wildcard
If any character inside the wildcard matches, it returns a result.
Example
Return every customer whose first letter begins with “b,” “s,” or “p”:
SELECT * FROM Customers
WHERE CustomerName LIKE '[bsp]%';
Using the - Wildcard
You can designate a range of characters to be included inside the [] wildcard by using the – wildcard.
Example
Return all customers starting with “a”, “b”, “c”, “d”, “e” or “f”:
SELECT * FROM Customers
WHERE CustomerName LIKE '[a-f]%';
Combine Wildcards
Any wildcard can be used in conjunction with other wildcards, such as % and _.
Example
Return all customers that starts with “a” and are at least 3 characters in length:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';
Example
Return all customers that have “r” in the second position:
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
Without Wildcard
In the event that no wildcard is used, the phrase must exactly match in order to provide a result.
Example
Return all customers from Spain:
SELECT * FROM Customers
WHERE Country LIKE 'Spain';
Microsoft Access Wildcards
The Microsoft Access Database has some other wildcards:
| Symbol | Description | Example |
|---|---|---|
| * | Represents zero or more characters | bl* finds bl, black, blue, and blob |
| ? | Represents a single character | h?t finds hot, hat, and hit |
| [] | Represents any single character within the brackets | h[oa]t finds hot and hat, but not hit |
| ! | Represents any character not in the brackets | h[!oa]t finds hit, but not hot and hat |
| - | Represents any single character within the specified range | c[a-b]t finds cat and cbt |
| # | Represents any single numeric character | 2#5 finds 205, 215, 225, 235, 245, 255, 265, 275, 285, and 295 |