test字段name
中存了字符'%',那么我查询的时候如果想查询第二位是
'%'的记录就要用到模糊查询,但是'%'是模糊查询的通配符,我不能如下查询:
select
*
from
test
where
name
like
'_%%'
这样系统不会把第二个【%】当做字符,只能转译,转译默认的符号是
【\】
select
*
from
test
where
name
like
'_\%%'
但是可以自定义转义符,这时候就用
escape,比如定义【*】为转义符
select
*
from
test
where
name
like
'_*%%'
escape
'*'
---
以上,希望对你有所帮助。
定义:escape关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原来的字符的意义,被定义的转义字符通常使用'\',但是也可以使用其他的符号。
实例:
SQL>select * from t11 where name like '%_%'
NAME
----------
aa_a
aaa
SQL>select * from t11 where name like '%\_%' escape '\'
NAME
----------
aa_a
注意:如果是 '/' 作为检索字符, 必须 用 '/' 作为转义符, 正斜扛也一样.
select * from wan_test where psid like '%//%' escape '/'
SqL中使用 ESCAPE 关键字定义转义符。当转义符置于通配符之前时,该通配符就解释为普通字符。例如:
1,要搜索“A_”开头的所有内容,请使用下列语句。句中通过escap将“_”转义,否则“_"为一个字符的通配符。
2,查找"%aa"开头的所有内容,语为如下。下例语句中第一个"%"仍为通配符“%”,第二个通过“/”将后边的“%”转义为“%”,而不是通配符。
使用SQL语句查询是开发中常做的事,在实际的情况中,可能会遇到,查询包含某个关键词的所有行,而这个关键词正好也是SQL SERVER的关键词。
下面有一张表Member,有如下的数据:
假如需要查询名字中包含%字符的数据,首先我们会有这样的查询语句:
SELECT * FROM dbo.Member WHERE Name LIKE '%%%'。
但是由于%在SQL SERSER中是关键字,此时需要转义,没有转义的写法可以如下:
SELECT * FROM dbo.Member WHERE Name LIKE '%[%]%'。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)