我想创建一个带有两个参数ColumnName
并ColumnValue
用于搜索的存储过程
我的查询看起来像这样:
SELECT * FROM TableName WHERE @ColumnName Like @ColumnValue + '%'
但它返回 0 结果
我想创建一个带有两个参数ColumnName
并ColumnValue
用于搜索的存储过程
我的查询看起来像这样:
SELECT * FROM TableName WHERE @ColumnName Like @ColumnValue + '%'
但它返回 0 结果
为此,您需要动态 SQL。您所写的是在 @ColumnName 值中搜索 @columnValue 值。因此,如果您的列是foo
并且值是bar
,它会搜索'foo'
LIKE'bar%'
DECLARE @SQL AS NVARCHAR(MAX)
SET @SQL =
N'SELECT * FROM TableName
WHERE ' + QuoteName(@ColumnName) + ' LIKE @val+''%'''
EXECUTE sp_executesql
@SQL,
N'@val varchar(100)',
@val = @ColumnValue;