要模糊查找字段中包含百分号%的SQL语句怎么写?

xhzhang6 2003-03-19 06:05:14
对于一般的字符可以这么写
select * from tbl1 where field1 like '%a%'
那么要模糊查找字段中包含百分号%的SQL语句怎么写?
...全文
3955 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
5956 2003-03-20
  • 打赏
  • 举报
回复
回复人: playyuer(心上人) ( ) 信誉:120
search "Escape" or "转义" in your help

使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'

应该是'\'吧!
sksk 2003-03-19
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1546/1546103.xml?temp=.753628
happydreamer 2003-03-19
  • 打赏
  • 举报
回复
LIKE '[%]a' =%a
lang_ren 2003-03-19
  • 打赏
  • 举报
回复
将通配符作为文字使用
可以将通配符模式匹配字符串用作文字字符串,方法是将通配符放在括号中。下表显示了使用 LIKE 关键字和 [ ] 通配符的示例。

符号 含义
LIKE '5[%]' 5%
LIKE '[_]n' _n
LIKE '[a-cdf]' a、b、c、d 或 f
LIKE '[-acdf]' -、a、c、d 或 f
LIKE '[ [ ]' [
LIKE ']' ]
LIKE 'abc[_]d%' abc_d 和 abc_de
LIKE 'abc[def]' abcd、abce 和 abcf


使用 ESCAPE 子句的模式匹配
可搜索包含一个或多个特殊通配符的字符串。例如,customers 数据库中的 discounts 表可能存储含百分号 (%) 的折扣值。若要搜索作为字符而不是通配符的百分号,必须提供 ESCAPE 关键字和转义符。例如,一个样本数据库包含名为 comment 的列,该列含文本 30%。若要搜索在 comment 列中的任何位置包含字符串 30% 的任何行,请指定由 WHERE comment LIKE '%30!%%' ESCAPE '!' 组成的 WHERE 子句。如果不指定 ESCAPE 和转义符,SQL Server 将返回所有含字符串 30 的行。

下例说明如何在 pubs 数据库 titles 表的 notes 列中搜索字符串"50% off when 100 or more copies are purchased":

USE pubs
GO
SELECT notes
FROM titles
WHERE notes LIKE '50%% off when 100 or more copies are purchased'
ESCAPE '%'
GO

playyuer 2003-03-19
  • 打赏
  • 举报
回复
search "Escape" or "转义" in your help

使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'

yoki 2003-03-19
  • 打赏
  • 举报
回复
select * from tbl1 where field1 like '%[%]a%'
leimin 2003-03-19
  • 打赏
  • 举报
回复
需要转义符号:
select * from tbl1 where field1 like '\%%a%'
_______________________________________^
这样SQL SERVER就会将\后的%做为正常字符

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧