2016-06-07 19 views
0

我使用下面的功能來搜索名稱:SQL,使用替換功能查找相關的文字

select * from Students where First_Name Like '%' + replace('Jasmin', '%', '[%]') + '%') 

此功能是不夠好,找到相關文本,包括空格或文字,如「Jasminj」(數據錄入錯誤)。但是如何使用這種查詢來搜索多個條件,例如:「First Name」和「Last Name」。 最後,有沒有更好的方法來搜索相關文本?感謝

+0

如果你在數據庫中有兩列First Name和Last Name,你可以給出一個樣本並且預期結果爲 – Ragesh

+0

。 如果你輸入了一個名字:Jasmin Swith。 使用替換查詢,如果您搜索「Ja」,「Jasmin Swith」名稱將包括在內: select * from First_Name Like'%'+ replace('Ja','%','[%]') +「%」) 結果:茉莉SWITH >>>>> 但使用相同的操作: $ SELECT * FROM學生將First_Name地方=「JA」 不會有結果 –

+0

所以我的問題是如何使用AND運算符來搜索名字和姓氏 –

回答

0

下面的查詢將幫助您: -

declare @Employee Table 
(
First_Name varchar(20) NOT NULL, 
Last_Name varchar(20) NOT NULL 
) 

Insert into @Employee 
values('Jasmin','Smith') 
Insert into @Employee 
values('Raj','Kumar') 


select concat(First_Name,' ',Last_Name) from @Employee where concat(First_Name,' ',Last_Name) Like '%' + replace('Ja', '%', '[%]') + '%' 

輸出:茉莉史密斯

select concat(First_Name,' ',Last_Name) from @Employee where concat(First_Name,' ',Last_Name) Like '%' + replace('ra', '%', '[%]') + '%' 

輸出:拉傑·庫馬爾

您可以使用concat函數來獲得所需的結果。

+0

無法正常工作,Concat無法識別, 我也嘗試過: select * from First_Name Like'%'+ replace('Jasmin','%','[%]')+'%' )和Last_Name Like'%'+替換('Swith','%','[%]')+'%') 並且也沒有工作 –

+0

試試這個查詢:select * from Students where First_Name Like'% '+'替換('Jasmin','%','[%]')+'%'或Last_Name Like'%'+替換('Swith','%','[%]')+'%' – Ragesh

+0

不管怎麼說 –