我们可以对这四个条件使用一个正则表达式吗?
select * from ExceEnt where
FirstName Like @name+'[ ]%'
or FirstName=@name
or FirstName Like'%[ ]'+@name
or FirstName Like'%[ ]'+@name+'[ ]%'
我们可以对这四个条件使用一个正则表达式吗?
select * from ExceEnt where
FirstName Like @name+'[ ]%'
or FirstName=@name
or FirstName Like'%[ ]'+@name
or FirstName Like'%[ ]'+@name+'[ ]%'
可能是我不完全理解你,但我希望你需要一个表达式,它可以完全匹配它的一部分,以data
你请求搜索的开头或结尾。
我建议您查看PATINDEX ( MSDN ) 方法来合并以上四个以显示为一个实体。
检查这个例子:(这可以帮助你找出你的问题)
--Drop table if table already exists
if exists(select * from sys.tables where object_id=object_id('ExceEnt'))
drop table ExceEnt
GO
--Create table
create table ExceEnt
(
FirstName varchar(200) NULL
)
GO
--Insert some data
insert into ExceEnt values('Never')
insert into ExceEnt values('Hopeless')
insert into ExceEnt values('NeverHopeless')
insert into ExceEnt values('As the name says NeverHopeless')
insert into ExceEnt values('Exclude others')
insert into ExceEnt values('Exclude this one too')
--Here use PATINDEX to find desired result
select * from ExceEnt where patindex('%Hopeless%',FirstName)>0
上面的脚本生成以下结果: