检索具有与下面提到的任何单词匹配的单词的列

时间:2017-06-09 11:11:34

标签: sql-server

我们需要查找具有column1,column2,column3,column4的Table是否包含 单词上存在的任何匹配单词,如果它在那里它应该显示表格中的结果

字= 'adsa sad Co., Ltd. CZ 565 AA Rd Block B Wang, SDSD 5756756 HP 5656 Vinayak Rd Block B 201203 asdsds China, AAA Republic'

Select *  from ABCTable 
where Column1 like '%adsa sad Co., Ltd. CZ 565 AA  Rd Block B Wang, SDSD 5756756 HP 5656 Vinayak Rd Block B 201203 asdsds China, AAA Republic%'

虽然此列存储了5756756,但它无效。

以下是我的代码。

 Declare @mytable table (column1 nvarchar(max),column2 nvarchar(max),column3 nvarchar(max))
insert into @mytable values ('201203','','')
insert into @mytable values ('52013','','')
insert into @mytable values ('52012454543','','')

declare @input nvarchar(max) = 'adsa sad Co., Ltd. CZ 565 AA Rd Block B Wang, SDSD 5756756 HP 5656 Vinayak Rd Block B 201203 asdsds China, AAA Republic'

select *
from @mytable
where @input like N'%'+column1+N'%'
    or @input like N'%'+column2+N'%'
    or @input like N'%'+column3+N'%'

1 个答案:

答案 0 :(得分:0)

喜欢以相反的方式工作。如果你在长串中寻找'201203'。比之前你把长字符串和%之后的数字放在一起之后。

Declare @mytable table (column1 nvarchar(max),column2 nvarchar(max),column3 nvarchar(max))
insert into @mytable values 
('201203',NULL,NULL)
,('52013',Null,NULL)
,('52012454543',NULL,NULL)

declare @input nvarchar(max) = 'adsa sad Co., Ltd. CZ 565 AA Rd Block B Wang, SDSD 5756756 HP 5656 Vinayak Rd Block B 201203 asdsds China, AAA Republic'

select *
from @mytable
where @input like N'%'+column1+N'%'
    or @input like N'%'+column2+N'%'
    or @input like N'%'+column3+N'%'