SQL的通配符

在搜索数据库中的数据时,您可以使用 SQL 通配符。

SQL 通配符

在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

SQL 通配符必须与 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

现在,我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE City LIKE ‘Ne%‘

结果集:

Id LastName FirstName Address City
2 Bush George Fifth Avenue New York

例子 2

接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE City LIKE ‘%lond%‘

结果集:

Id LastName FirstName Address City
1 Adams John Oxford Street London

使用 _ 通配符

例子 1

现在,我们希望从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE FirstName LIKE ‘_eorge‘

结果集:

Id LastName FirstName Address City
2 Bush George Fifth Avenue New York

例子 2

接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE LastName LIKE ‘C_r_er‘

结果集:

Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing

使用 [charlist] 通配符

例子 1

现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE City LIKE ‘[ALN]%‘

结果集:

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York

例子 2

现在,我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons
WHERE City LIKE ‘[!ALN]%‘

结果集:

Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing
时间: 2024-11-03 21:51:48

SQL的通配符的相关文章

Sql Like 通配符 模糊查询技巧及特殊字符

1. SQL like对时间查询的处理方法 SQL数据表中有savetime(smalldatetime类型)字段,表中有两条记录,savetime值为:2005-3-8 12:12:00和2005-6-6 14:02:02 我用下面语句什么也搜不出来 select * from soft where soft.savetime like'%2005-3-8%' SQL帮助中说: "当搜索 datetime 值时,推荐使用 LIKE,因为 datetime 项可能包含各种日期部分.例如,如果将值

SQL Server 通配符 Wildcard character

SQL Server 通配符 Wildcard character %        任意长度的字符串,如:'%computer%' _        单个字符,如:'_ean' []        指定范围内的单个字符,如:'[C-P]arsen' [^]        任意单个字符,但不在指定范围内,如:'[^C-P]'

SQL之通配符过滤

操作符like 通配符本是实际是SQL的where子句中有特殊含义的字符,SQL支持几种通配符.为了在搜索子句里使用通配符,必须使用like操作符. 1.%通配符 %表示出现任意次数的任意字符 找出fish开头的产品. select prod_id,prod_name from Products where prod_name like "Fish%"; 找出中间有fish的产品 select prod_id,prod_name from Products where prod_nam

SQL利用通配符进行模式查询

Like运算符中使用的通配符列表 通配符 说明 % 零个或多个字符 _ 任何单一字符 [] 在指定那个区域或集合内的任何单一字符 [^] 不在指定区域或集合内的任何单一字符 1.包含字符mr的任何文本:Like‘%mr%’ 2.以字符mr开头的任何文本:Like'mr%' 3.以字符mr结尾的任何文本:Like'%mr' 4.取字符mr和单个任意前缀字符:Like'mr_' 5.取字符mr和单个任意前缀字符:Like'_mr' 6.以字符m或r开头的任何文本:Like'[mr]%' 7.结尾为s

SQL LIKE 通配符随笔

通配符 说明 _    与任意单字符匹配 %    与包含一个或多个字符的字符串匹配 [ ]  与特定范围(例如,[a-f])或特定集(例如,[abcdef])中的任意单字符匹配. [^]  与特定范围(例如,[^a-f])或特定集(例如,[^abcdef])之外的任意单字符匹配. 例子: ? WHERE FirstName LIKE '_im' 可以找到所有三个字母的.以 im 结尾的名字(例如,Jim.Tim).  ? WHERE LastName LIKE '%stein' 可以找到姓以

【SQL】 通配符

1. % : 替代一个或多个字符 2. _ : 仅替代一个字符 3. [] : 字符列中的任何单一字符 4. [^charlist] 或者 [!charlist]  : 不在字符列中的任何单一字符 5. ESCAPE  : 定义转义符,将通配符转换成普通字符 (本文的重点,刚好项目中遇到以通配符为查询条件,发现语句没问题但数据查不出来,百度后发现是通配符的问题,以此记录) 语句 : ESCAPE 定义 \ 为转义符, WHERE 中的 % 不再是通配符,只是普通字符,即搜索以 % 开头的数据 S

SQL Server 通配符为目标字符的查找

create table t(x int identity(1,1) primary key,v nvarchar(32));go insert into t(v) values('this is % line'),('this is 1 line'); 我们的目标是找到'this is % line' 这一行. select x,v from t where v like'%\%%' escape '\'; 第一个'%'用来匹配%前的串. 第二个'%'用来匹配串中的%. 第三个'%'用来匹配%

SQL Server:SQL Like 通配符特殊用法:Escape

%:匹配零个及多个任意字符: _:与任意单字符匹配: []:匹配一个范围: [^]:排除一个范围 :-:连字符 Symbol Meaning like '5[%]' 5% like '[_]n' _n like '[a-cdf]' a, b, c, d, or f like '[-acdf]' -, a, c, d, or f like '[[]' [ like ']' ] like 'abc[_]d%' abc_d and abc_de like 'abc[def]' abcd, abce,

SQL中 like 通配符 特殊字符处理

以下是一些匹配的举例,需要说明的是,只有like操作才有这些特殊字符,=操作是没有的.a_b... a[_]b%a%b... a[%]b%a[b... a[[]b%a]b... a]b%a[]b... a[[]]b%a[^]b... a[[][^]]b%a[^^]b... a[[][^][^]]b% 1. 在实际进行处理的时候,对于=操作,我们一般只需要如此替换:' -> '' 2. 对于like操作,需要进行以下替换(注意顺序也很重要)[ -> [[] (这个必须是第一个替换的!!)% -&