1

我创建了一个视图,它从多个表中获取所有数据,我需要对其进行关键字搜索。下面是我的 SP,我在其中加入了我的视图和关键字功能,它对描述、名称、项目、产品进行搜索。我的这里的问题是,如果项目具有空值或产品具有空值,它不会返回行。即使项目或产品为空,我也需要显示结果。我尝试使用左外连接,它显示所有与我无关的行搜索关键字。我尝试了不同的方法,例如使用 where 子句 items 为 null 和 products 为 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
4

1 回答 1

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 
于 2012-07-11T03:38:05.143 回答