SQL Query使用参数和类似的单词

时间:2012-08-21 20:28:45

标签: sql-server-2008

我有一个要求,我必须将参数@ClientName传递给查询,我必须使用@ClientName在类似的过滤器中使用。

请参阅下文。

DECLARE @ClientName VARCHAR(20) = 'abc'
SELECT ID,ClientName
FROM    ClientTable
WHERE   ClientName LIKE '%@ClientNAme%'  

请告诉我,如果还有其他替代方案可以实现这一点。

2 个答案:

答案 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+'%'