通配符可以替代 一个或多个 字符。
通配符 必须 与 LIKE 运算符一起使用。
在 SQL 中,可使用以下通配符:
通配符 |
描述 |
% |
替代 一个或多个 字符 |
_ |
仅替代 一个 字符 |
[charlist] |
字符列中的 任何 单一字符 |
[^charlist] 或者 [!charlist] |
不在 字符列中的任何单一字符 |
Persons 表:
Id |
LastName |
FirstName |
Address |
City |
1 |
Adams |
John |
Oxford Street |
London |
2 |
Bush |
George |
Fifth Avenue |
New York |
3 |
Carter |
Thomas |
Changan Street |
Beijing |
使用 % 通配符
例 1
如果我们希望从上面的表中选取居住在 以 "Ne" 开头的城市 里的人:
可以使用如下语句:
SELECT * FROM Persons
WHERE City LIKE ' Ne% '
结果:
Id |
LastName |
FirstName |
Address |
City |
2 |
Bush |
George |
Fifth Avenue |
Ne w York |
例 2
接下来,我们希望从表中选取居住在 以 "g" 结尾 的城市里的人:
可以使用如下语句:
SELECT * FROM Persons
WHERE City LIKE ' %g '
结果:
Id |
LastName |
FirstName |
Address |
City |
3 |
Carter |
Thomas |
Changan Street |
Beijin g |
例 3
接下来,我们希望从表中选取居住在 包含 "lon" 的城市 里的人:
可以使用如下语句:
SELECT * FROM Persons
WHERE City LIKE ' %lon% '
结果:
Id |
LastName |
FirstName |
Address |
City |
1 |
Adams |
John |
Oxford Street |
Lon don |
例 4
通过 NOT 关键字,我们还可以从表中选取居住在 不包含 "lon" 的城市 里的人:
语句如下:
SELECT * FROM Persons
WHERE City NOT LIKE '%lon%'
结果:
Id |
LastName |
FirstName |
Address |
City |
2 |
Bush |
George |
Fifth Avenue |
New York |
3 |
Carter |
Thomas |
Changan Street |
Beijing |
使用 _ 通配符
例 1
如果我们希望从上面的表中选取名字的 第一个字符之后是 "eorge" 的人:
可以使用如下语句:
SELECT * FROM Persons
WHERE FirstName LIKE ' _eorge '
结果:
Id |
LastName |
FirstName |
Address |
City |
2 |
Bush |
G eorge |
Fifth Avenue |
New York |
例 2
接下来,我们希望从表中选取的这条记录的 姓氏以 "C" 开头 ,然后是 一个 任意字符 ,然后是 "r",然后是 任意字符 ,然后是 "er":
可以使用如下语句:
SELECT * FROM Persons
WHERE LastName LIKE ' C_r%er '
结果:
Id |
LastName |
FirstName |
Address |
City |
3 |
Carter |
Thomas |
Changan Street |
Beijing |
使用 [charlist] 通配符
例 1
现在,我们希望从上面的 表中选取居住在城市 以 "A" 或 "L" 或 "N" 开头 的人:
可以使用如下语句:
SELECT * FROM Persons
WHERE City LIKE ' [ALN]% '
结果:
Id |
LastName |
FirstName |
Address |
City |
1 |
Adams |
John |
Oxford Street |
L ondon |
2 |
Bush |
George |
Fifth Avenue |
N ew York |
例 2
现在,我们希望从上面的表中选取居住在城市 不以 "A" 或 "L" 或 "N" 开头 的人:
可以使用如下语句:
SELECT * FROM Persons
WHERE City LIKE ' [!ALN]% '
结果:
Id |
LastName |
FirstName |
Address |
City |
3 |
Carter |
Thomas |
Changan Street |
B eijing |