0

我有一个要求,我必须将参数 @ClientName 传递给查询,并且我必须使用 @ClientName 才能在 like 过滤器中使用。

请看下文。

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

请让我知道,如果还有其他替代方法可以实现这一点。

4

2 回答 2

2

您可以使用简单的串联内联:

WHERE ClientName LIKE '%' + @ClientName + '%'

或者,您可以通过允许通配符是可选的来更直接地控制此行为。如果您的查询是这样的:

WHERE ClientName LIKE @ClientName

然后,您可以使用以下方法之一强制执行不同的行为(开头、包含或结尾):

SET @ClientName = 'abc%';
SET @ClientName = '%abc%';
SET @ClientName = '%abc';
于 2012-08-21T20:30:42.050 回答
1
DECLARE @ClientName VARCHAR(20) = 'abc' 

SELECT ID,ClientName 
FROM    ClientTable 
WHERE   ClientName LIKE '%'+@ClientName+'%' 
于 2012-08-21T20:30:49.743 回答