我创建了一个视图,它抓取多个表中的所有数据,我需要对它进行关键字搜索。我是我的SP,我加入了我的视图和关键字功能,可以搜索描述,名称,项目,产品。这里的问题是,如果items具有null值或者产品具有null值,则它不会返回行。即使item或products为null,我也需要显示结果。我尝试使用left outer join,它显示所有行与我的搜索关键字无关。我尝试了不同的方法,如使用where子句项为null,产品为空,没有运气。我需要一些专家建议来处理这个问题。
ALTER PROCEDURE [dbo].[keywordsearch]
(
@username varchar(256),
@keyword varchar(250)
)
AS
BEGIN
select * from allrecordsview k join dbo.Split(@Keyword, ',')T on
k.description+k.Name+k.items +k.products like '%' + T.items + '%'
where k.username = @username
END
答案 0 :(得分:0)
试试这个:
SELECT *
FROM allrecordsview k
JOIN dbo.Split(@Keyword, ',') T
ON ( COALESCE(k.description, '')
+ COALESCE(k.name, '') + COALESCE(k.items, '')
+ COALESCE(k.products, '') ) LIKE '%' + T.items + '%'
WHERE k.username = @username