WHERE句の中にWHILEループを入れることはできますか?テキスト検索機能を導入しようとしているストアドプロシージャがあります。私はそれを次のように完全に一致させるために機能させています:
AND (@exactString = ''
OR (CHARINDEX(@exactString, [Short Description]) > 0
OR CHARINDEX(@exactString, [Description]) > 0
OR CHARINDEX(@exactString, [Manufacturer]) > 0))
次に、「任意の単語」の一致と「すべての単語」の一致を実行しようとしています。次のWHILEループを使用して、検索する検索文字列を取得できます。
DECLARE @searchString varchar(max)
DECLARE @endIndex int
SET @allString = LTRIM(RTRIM(@allString))
WHILE LEN(@allString) > 0
BEGIN
SET @endIndex = CHARINDEX(' ', @allString) > 0
IF @endIndex > 0
BEGIN
SET @searchString = LEFT(@allString, @endIndex)
SET @allString = LTRIM(RTRIM(RIGHT(@allString, @endIndex)))
END
ELSE
BEGIN
SET @searchString = @allString
SET @allString = ''
END
END
ここで、上記の@exactStringを使用したように、@searchString変数を使用します。私のループ内でこれを行う方法はありますか、それともここで機能する他のテクニックが欠けていますか?
助けてくれてありがとう、ダン