パラメータを取り、簡単な情報を取得するための便利なテーブルにクエリを実行できるユーティリティ ストアド プロシージャを作成しようとしています。このために、以下に示すように、渡されたパラメーターの前後に「%」文字を追加して、クエリで使用できるようにする必要がありますlike
。
作業コード - ハードコードされている場合
select some_field from TABLE where nm_field like ('%'+'abc'+'%')
しかし、変数で同じものを使用しようとすると、上記のクエリと比較して結果が少なくなります
declare @nm char(100)
select @nm = 'abc'
select some_field from TABLE where nm_field like ('%'+@abc+'%')
いくつかの調査、試行錯誤の結果、次の select は、「%」がパラメーターの前にのみ追加され、両側に追加されていないことを示しています。
declare @name char(20), @other char(20)
select @name = 'abc'
select @other = ('%' + @name + '%')
select @other
期待される出力
%abc%
しかし、実際の出力
%abc
Sybase ASE-12.5.4 を使用しています
ここで何がうまくいかないのか教えてください。