2

ストアド プロシージャの変数を使用して、LIKE ステートメントを適切に使用できないようです。渡された変数で始まるテーブルからすべての行を検索したい。

現在、次のクエリを使用しています。@idはストアド プロシージャに渡される値nvarchar(20)です。'%'これは、ID が完全に一致する場合は正常に機能しますが、追加されたものを適切に使用しません。このタスクを完了するための適切な方法は何ですか?

SELECT * FROM Table WHERE id LIKE @id + '%'
4

4 に答える 4

0

@idnullの場合、クエリは機能しません。したがって、null の場合は空の文字列に設定することができ@idます。次のことを試してください。

begin 
    declare @id nvarchar(20)
    set @id = isnull(@id, '')
    select * from table where id like @id + '%'
end

したがって、手順で次の行を追加すると、クエリで機能するはずです。

set @id = isnull(@id, '')
于 2013-07-17T20:57:11.073 に答える