我正在尝试创建一个实用程序存储过程,它可以接受一个参数并查询一个方便的表以检索一些快速信息。为此,我需要在参数传递之前和之后添加 '%' 字符,以便在查询中使用它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+'%')
在一些调查、试验和错误中,以下选择显示 '%' 仅添加在参数之前,而不是两侧。
declare @name char(20), @other char(20)
select @name = 'abc'
select @other = ('%' + @name + '%')
select @other
预期产出
%abc%
但实际输出
%abc
我正在使用 Sybase ASE-12.5.4
你能帮我解决这里出了什么问题吗?