94

WHERE LIKE '%text%' 句を使用するステートメントを記述しようとしましたが、テキストにパラメーターを使用しようとしても結果が得られません。たとえば、これは機能します:

SELECT Employee WHERE LastName LIKE '%ning%'

これにより、Flenning、Manning、Ningle などのユーザーが返されます。ただし、このステートメントは次のようにはなりません。

DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%@LastName%'

結果が見つかりません。助言がありますか?前もって感謝します。

4

3 に答える 3

178

そのはず:

...
WHERE LastName LIKE '%' + @LastName + '%';

それ以外の:

...
WHERE LastName LIKE '%@LastName%'
于 2013-01-09T14:46:03.747 に答える
17

正しい答えは、 -'%'記号は検索式の一部であるため、値の一部である必要があるため、SET @LastName(プログラミング言語または TSQL から) のどこにでも設定する必要があるということです。'%' + [userinput] + '%'

または、あなたの例では:

DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%' + @LastName + '%'
于 2015-06-02T14:50:31.617 に答える