有一产品表,有一列是索引关键字,如果有多个词用|分隔:
如别克|奔驰|宝马
目前要写一个查询,给定某个查询词,对索引关键字进行匹配。比如给定的词是:新宝马汽车,想要查询索引关键字被查询词包含。。。如果索引词是单个,用charindex()就可以了,多个怎么写?谢谢。
------解决方案--------------------------------------------------------
USE test
go
-->生成表A
if object_id('A') is not null
drop table A
Go
Create table A([ID] smallint,[ProdName] nvarchar(8))
Insert into A
Select N'1',N'宝马'
Union all Select N'2',N'宝马、奔驰、吉利'
Union all Select N'3',N'奥迪、奔腾'
Union all Select N'4',N'雪铁龙'
-->生成表B
if object_id('B') is not null
drop table B
Go
Create table B([ID] smallint,[ProdName2] nvarchar(2))
Insert into B
Select N'1',N'宝马'
Union all Select N'2',N'奔驰'
Union all Select N'3',N'宝马'
Union all Select N'4',N'吉利'
SELECT * FROM A
WHERE NOT EXISTS(SELECT 1 FROM B AS x WHERE CHARINDEX(x.ProdName2,a.ProdName)>0)
/*
ID ProdName
------ --------
3 奥迪、奔腾
4 雪铁龙
*/