1

複数のテーブルからすべてのデータを取得するビューを作成しました。その上でキーワード検索を行う必要があります。以下は、説明、名前、アイテム、製品で検索を行うビューとキーワード関数に参加する SP です。ここでの問題は、商品に null 値がある場合、または商品に null 値がある場合、行が返されないことです。商品または商品が null の場合でも結果を表示する必要があります。左外部結合を使用してみましたが、自分に関係のないすべての行が表示されます検索キーワード.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 に答える