select * from tblTest where name 包含于 'abcdefgh'
不能用charIndex或者patIndex实现
39 个解决方案
#1
select * from tblTest where charindex(name ,'abcdefgh' )>0
#2
select * from tb where charindex('abcdefgh',name)>0
select * from tb where patindex('%abcdefgh%',name)>0
select * from tb where name like '%abcdefgh%'
#3
狙击啊..
人家说不能用charindex啊.
人家说不能用charindex啊.
#4
那就like吧
#5
like 也不能用吗?
那
select * from tb
where replace('abcdefgh',name,'')< 8
#6
replace也不能用呢?
#7
高,这句没看懂
#8
容再下想想
#9
暂时想不到了
#10
各位帮忙啊
#11
楼上说过用
select * from tb
where replace('abcdefgh',name,'') < 8
但是'abcdefgh'其实是个变量,不一定是8位,可能很多,请帮忙继续想想
#12
--这样?
--> 测试数据: @os
declare @os table (id int,name varchar(5))
insert into @os
select 1,'abcde' union all
select 2,'de' union all
select 3,'cde' union all
select 4,'abd' union all
select 5,'bcde' union all
select 6,'abe' union all
select 6,'xyz'
declare @name varchar(50)
set @name='abcdefghij'
select * from @os where len(replace(@name,name,''))<len(@name)
#13
declare @str varchar(100)
set @str='abcdefgh'
select * from tblTest where @str like '%'+name+'%'
--> or
select * from tblTest where @str replace(@str,name,'')<>@str
#14
declare @str varchar(100)
set @str='abcdefgh'
select * from tblTest where @str like '%'+name+'%'
--> 笔误:
select * from tblTest where replace(@str,name,'')<>@str
#15
14楼的方法在SQL Server可以运行,但是在Access数据库中不能用declare声明变量怎么办?
#16
个人感觉like是最好用的
#17
16楼的,你说用like好用,如何实现啊?
#18
select * from tblTest where name like '%abcdefgh%'
#19
不是这样的,我要用实现这样的查询:
select * from tblTest where name 包含于 'abcdefgh'
解释一下,name中的值只是'abcdefgh' 中的一部分,也就是查询少的字符串是否包含在多的字符串中,这种查询,跟我们平常的查询相反.
select * from tblTest where name 包含于 'abcdefgh'
解释一下,name中的值只是'abcdefgh' 中的一部分,也就是查询少的字符串是否包含在多的字符串中,这种查询,跟我们平常的查询相反.
#20
12楼的不就是这意思么?
#21
撒点水水...别介意...
#22
学习了
牛
replace(@str,name,'')<>@str
len(replace(@name,name,''))<len(@name)
好想法
牛
replace(@str,name,'')<>@str
len(replace(@name,name,''))<len(@name)
好想法
#23
这样:
select * from tblTest where 'abcdefgh' like '%'+name+'%'
#24
select * from tblTest where name like '*abcd*'
#25
应该是select * from tblTest where name like '%abcd%'吧
新手,不知道这是不是一样的
#26
很强大,学习了
#27
select name from tab where replace(name,'abcd','')<>name 通杀...
#28
楼主应该用的不是MS SQL,MS SQL 的这些函数都用不上,只能用like
只有23楼的可以了。
只有23楼的可以了。
#29
同意7楼的观点
#30
顶一下23楼的 oracle下 测试通过
#31
select * from tblTest where 'abcdefgh' like '%'+name+'%'
不错,顶!
#32
Select * from tblTest where name like 'abcdefgh'
#33
Select * from tblTest where name like '%abcdefgh%'
#34
sql或者access有没有这样的语法?
select * from tblTest where 'abcdefgh' like name ??????????
呵呵
select * from tblTest where 'abcdefgh' like name ??????????
呵呵
#35
哎,access里面就是不能实现
#36
like
#37
select * from tblTest where 'abcdefgh' like '%'+name+'%'
这个在Access里面不能用
这个在Access里面不能用
#38
access:
select * from tblTest where 'abcdefgh' like '*'+name+'*'
select * from tblTest where 'abcdefgh' like '*'+name+'*'
#39
oracle里面如何用?不许用like
#1
select * from tblTest where charindex(name ,'abcdefgh' )>0
#2
select * from tb where charindex('abcdefgh',name)>0
select * from tb where patindex('%abcdefgh%',name)>0
select * from tb where name like '%abcdefgh%'
#3
狙击啊..
人家说不能用charindex啊.
人家说不能用charindex啊.
#4
那就like吧
#5
like 也不能用吗?
那
select * from tb
where replace('abcdefgh',name,'')< 8
#6
replace也不能用呢?
#7
高,这句没看懂
#8
容再下想想
#9
暂时想不到了
#10
各位帮忙啊
#11
楼上说过用
select * from tb
where replace('abcdefgh',name,'') < 8
但是'abcdefgh'其实是个变量,不一定是8位,可能很多,请帮忙继续想想
#12
--这样?
--> 测试数据: @os
declare @os table (id int,name varchar(5))
insert into @os
select 1,'abcde' union all
select 2,'de' union all
select 3,'cde' union all
select 4,'abd' union all
select 5,'bcde' union all
select 6,'abe' union all
select 6,'xyz'
declare @name varchar(50)
set @name='abcdefghij'
select * from @os where len(replace(@name,name,''))<len(@name)
#13
declare @str varchar(100)
set @str='abcdefgh'
select * from tblTest where @str like '%'+name+'%'
--> or
select * from tblTest where @str replace(@str,name,'')<>@str
#14
declare @str varchar(100)
set @str='abcdefgh'
select * from tblTest where @str like '%'+name+'%'
--> 笔误:
select * from tblTest where replace(@str,name,'')<>@str
#15
14楼的方法在SQL Server可以运行,但是在Access数据库中不能用declare声明变量怎么办?
#16
个人感觉like是最好用的
#17
16楼的,你说用like好用,如何实现啊?
#18
select * from tblTest where name like '%abcdefgh%'
#19
不是这样的,我要用实现这样的查询:
select * from tblTest where name 包含于 'abcdefgh'
解释一下,name中的值只是'abcdefgh' 中的一部分,也就是查询少的字符串是否包含在多的字符串中,这种查询,跟我们平常的查询相反.
select * from tblTest where name 包含于 'abcdefgh'
解释一下,name中的值只是'abcdefgh' 中的一部分,也就是查询少的字符串是否包含在多的字符串中,这种查询,跟我们平常的查询相反.
#20
12楼的不就是这意思么?
#21
撒点水水...别介意...
#22
学习了
牛
replace(@str,name,'')<>@str
len(replace(@name,name,''))<len(@name)
好想法
牛
replace(@str,name,'')<>@str
len(replace(@name,name,''))<len(@name)
好想法
#23
这样:
select * from tblTest where 'abcdefgh' like '%'+name+'%'
#24
select * from tblTest where name like '*abcd*'
#25
应该是select * from tblTest where name like '%abcd%'吧
新手,不知道这是不是一样的
#26
很强大,学习了
#27
select name from tab where replace(name,'abcd','')<>name 通杀...
#28
楼主应该用的不是MS SQL,MS SQL 的这些函数都用不上,只能用like
只有23楼的可以了。
只有23楼的可以了。
#29
同意7楼的观点
#30
顶一下23楼的 oracle下 测试通过
#31
select * from tblTest where 'abcdefgh' like '%'+name+'%'
不错,顶!
#32
Select * from tblTest where name like 'abcdefgh'
#33
Select * from tblTest where name like '%abcdefgh%'
#34
sql或者access有没有这样的语法?
select * from tblTest where 'abcdefgh' like name ??????????
呵呵
select * from tblTest where 'abcdefgh' like name ??????????
呵呵
#35
哎,access里面就是不能实现
#36
like
#37
select * from tblTest where 'abcdefgh' like '%'+name+'%'
这个在Access里面不能用
这个在Access里面不能用
#38
access:
select * from tblTest where 'abcdefgh' like '*'+name+'*'
select * from tblTest where 'abcdefgh' like '*'+name+'*'
#39
oracle里面如何用?不许用like