我有一个要求,我必须将参数@ClientName传递给查询,我必须使用@ClientName在类似的过滤器中使用。
请参阅下文。
DECLARE @ClientName VARCHAR(20) = 'abc'
SELECT ID,ClientName
FROM ClientTable
WHERE ClientName LIKE '%@ClientNAme%'
请告诉我,如果还有其他替代方案可以实现这一点。
答案 0 :(得分:2)
您可以使用内联的简单连接:
WHERE ClientName LIKE '%' + @ClientName + '%'
或者,您可以通过允许通配符是可选的来更直接地控制此行为。如果您的查询是这样的:
WHERE ClientName LIKE @ClientName
然后,您可以使用以下方法之一强制执行不同的行为(包括,包含或结束):
SET @ClientName = 'abc%';
SET @ClientName = '%abc%';
SET @ClientName = '%abc';
答案 1 :(得分:1)
DECLARE @ClientName VARCHAR(20) = 'abc'
SELECT ID,ClientName
FROM ClientTable
WHERE ClientName LIKE '%'+@ClientName+'%'