--建临时表
create table #
(
a int,
b varchar(10)
)insert into #
select 1,'abd' union all
select 2,'b89d' union all
select 3,'poi9' union all
select 4,'AVB90' union all
select 5,'abcde'select *
from #-- %,多个字符
-- 匹配包含零个或多个字符的任意字符串。这个通配符既可以用作前缀也可以用作后缀。select *
from #
where b like '%b%'-- _(下划线),单个字符
select *
from #
where b like '_89_'--[],指匹配指定范围内或者属于方括号所指定的集合中的任意单个字符。
select *
from #
where b like '[a-b]%'--[^]匹配不处于指定范围内或者不属于方括号内指定集合中的任意单个字符。
select *
from #
where b like '[^a-b]%'

解决方案 »

  1.   

    注意,以上是标准sql语句的写法,
    在SQL Server中模糊查询通常是这样的Select * from tb_Table where no1 like '%000%' 但是在纯Access环境中用这条语句执行的时候发现查不出结果 ,它与SQL SERVER的通配符不一样。
    ACCESS库的通配符为: 
    *   与任何个数的字符匹配。 
    ?   与任何单个字母的字符匹配 但是,*和?只在纯access中有效,如果用ado连接access数据库的话,依然要用%和_,
    对比情况如下,即:--在ADO的sql串中通配符用% 和_
    select * from 表名 where 字段名 like '%abc%'
    select * from 表名 where 字段名 like '_abc'--在纯Access中通配符用* 和?
    select * from 表名 where 字段名 like '*abc*'
    select * from 表名 where 字段名 like '?abc'
      

  2.   

    lz 大好人啊,有一些再補充下還有一些查找關於“%”,“_”一些字符

    name
    "zhang%hong"
    "1983-01-01"select * from t where name like '%e%%' escape 'e'  --這是查找‘%’
    select * from t where name like '%e_%' escape 'e' -- 這是查找'_'