SQL语句中的通配符实例

  在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与 LIKE 运算符一起使用。
LIKE关键字共有四种通配符。“%”代表“包含0个或更多字符的任意字符串”;“_”代表“任何单个字符”;“[]”代表“指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符”;“[^]”代表“不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符”。

SELECT * FROM sysobjects WHERE [name] LIKE '%sys%'---包含字符串"sys"的所有记录
UNION ALL
SELECT * FROM sysobjects WHERE [name] LIKE 's_s_t_'---包含单词"s""s""t"并穿插一个任意单词的所有记录
UNION ALL
SELECT * FROM sysobjects WHERE [name] LIKE '_ysrowsets'---包含一个任意单词开头且以字符串"ysrowsets"结尾的所有记录
UNION ALL
SELECT * FROM sysobjects WHERE [name] LIKE 'j%s'---包含单词"j"开头"s"结尾的所有记录
UNION ALL
SELECT * FROM sysobjects WHERE [name] LIKE '[qe]%'---包含单词"q"或"e"开头的所有记录
UNION ALL
SELECT * FROM sysobjects WHERE [name] LIKE '[^djsmupftqe]%'---不包含单词"d,j,s,m,u,p,f,t,q,e"开头的所有记录
UNION ALL
SELECT * FROM sysobjects WHERE [name] LIKE '[^a-s]%'--不包含单词"a"到"s"开头的所有记录
UNION ALL
SELECT * FROM sysobjects WHERE [name] LIKE '%[_]Ins'---包含单词"_Ins"并以此结尾的所有记录

/*或使用 CHARINDEX 或PATINDEX
返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
*/
UNION ALL
SELECT * FROM sysobjects WHERE CHARINDEX('%s1%',[name])> 0 ---包含单词"s1"的所有记录
UNION ALL
SELECT * FROM sysobjects WHERE PATINDEX('%s1%',[name])> 0 ---包含单词"s1"的所有记录


使用通配符可以编辑复杂的搜索字符串。假如要确定一个字符串是否包含字母A和Z,还有任何数字,这个PARINDEX函数命令可能像这样:
PATINDEX('%[A,Z,0-9]%[A,Z,0-9]%[A,Z,0-9]%','XYZABC123')

 

最后值得说明的是,在使用函数时 charindex > like > padindex  效率依次递减。

转载于:https://www.cnblogs.com/lqluo/archive/2010/03/12/1684501.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值