SQL 通配符
SQL 通配符
通配符用于替换字符串中的一个或多个字符。
通配符与SQL LIKE运算符一起使用。LIKE运算符在WHERE子句中用于搜索列中的指定模式。
MS Access中的通配符
符号 | 描述 | 例 |
---|---|---|
* | 表示零个或多个字符 | bl *找到bl,black,blue和blob |
? | 表示单个字符 | 找不到热,帽子和打击 |
[] | 表示括号内的任何单个字符 | 发现热和帽子,但没有发现 |
! | 表示括号内没有的任何字符 | h [!oa] t发现击中,但不是热和帽子 |
- | 表示一系列字符 | c [ab] t找到cat和cbt |
# | 表示任何单个数字字符 | 2#5找到205,215,225,235,245,255,265,275,285和295 |
SQL Server中的通配符
符号 | 描述 | 例 |
---|---|---|
% | 表示零个或多个字符 | bl%找到bl,black,blue和blob |
_ | 表示单个字符 | h_t找到hot,hat和hit |
[] | 表示括号内的任何单个字符 | 发现热和帽子,但没有发现 |
^ | 表示括号内没有的任何字符 | h [^ oa] t找到命中,但不是热和帽子 |
- | 表示一系列字符 | c [ab] t找到cat和cbt |
所有通配符也可以组合使用!
以下示例显示了具有'%'和'_'通配符的不同LIKE运算符:
喜欢运营商 | 描述 |
---|---|
WHERE CustomerName LIKE'a%' | 查找以“a”开头的任何值 |
WHERE CustomerName LIKE'%a' | 查找以“a”结尾的任何值 |
WHERE CustomerName LIKE'%or%' | 查找在任何位置具有“或”的任何值 |
WHERE CustomerName LIKE'_r%' | 查找在第二个位置具有“r”的任何值 |
WHERE CustomerName LIKE'a _%_%' | 查找以“a”开头并且长度至少为3个字符的任何值 |
在哪里ContactName LIKE'a%o' | 查找以“a”开头并以“o”结尾的任何值 |
演示数据库
以下是Northwind示例数据库中“Customers”表的选择:
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语句选择城市以“ber”开头的所有客户:
以下SQL语句选择具有包含“es”的City的所有客户:
使用 _ 通配符
以下SQL语句选择所有具有以任何字符开头的City的客户,后跟“ondon”:
以下SQL语句选择城市以“L”开头的所有客户,跟任何字符,跟“n”,跟任何字符,最后跟“on”:
使用 [charlist] 通配符
以下SQL语句选择城市以“b”,“s”或“p”开头的所有客户:
以下SQL语句选择城市以“a”,“b”或“c”开头的所有客户:
使用[!charlist]通配符
以下两个SQL语句选择城市不以“b”,“s”或“p”开头的所有客户:
要么: