sqlserver通配符使用-特殊符号处理-escape
2014-04-23 10:23
357 查看
SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用,=操作是没有的。
通配符 | 描述 |
---|---|
% | 替代一个或多个字符(相当于正则表达式中的 * ) |
_ | 仅替代一个字符(相当于正则表达式中的 ? ) |
[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 |
select 'asjldfj%%abc%asdfjklj'
select * from testhxj where name like '%/%abc/%%' escape '\'(这里\表示是通配符,这样匹配的数据是包含%abc%的数据,如果不用escape,就无法将%匹配为字符串)
相关文章推荐
- 连接oracle数据库的几种方法
- 【Oracle 学习】Scott账号解锁
- 数据库事务使用范例
- MySQL数据库建立索引的优缺点以及什么样的字段适合建立索引
- PostgreSQL 集群/热备方案
- SQLite数据库的upgrade方法
- MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要区别
- MongoDB实战_PS : 操作性很强的入门手记
- oracle基础之数据类型
- Oracle 索引 详解
- oracle关键字with..as和wm_concat的用法说明
- Oracle 分区表 总结
- SQL语句学习之路6
- mysql清除binlog
- oracle 学习 3
- Oracle HINT详细介绍
- SQL语句学习之路5
- oracle 学习 2
- oracle_单行函数_字符函数
- oracle 学习1