Sql server 2008 使用参数和like单词进行SQL查询

Sql server 2008 使用参数和like单词进行SQL查询,sql-server-2008,Sql Server 2008,我有一个要求,我必须将参数@ClientName传递给query,并且我必须使用@ClientName在like过滤器中使用 请看下面 DECLARE @ClientName VARCHAR(20) = 'abc' SELECT ID,ClientName FROM ClientTable WHERE ClientName LIKE '%@ClientNAme%' 请让我知道,如果有其他替代方法来实现此目的。您可以使用纯串联内联: WHERE ClientName LIKE '%

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

请看下面

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

请让我知道,如果有其他替代方法来实现此目的。

您可以使用纯串联内联:

WHERE ClientName LIKE '%' + @ClientName + '%'
或者,您可以通过允许通配符是可选的来更直接地控制此行为。如果您的问题是:

WHERE ClientName LIKE @ClientName
然后,可以使用以下方法之一强制执行不同的行为(以开始、包含或结束):

SET @ClientName = 'abc%';
SET @ClientName = '%abc%';
SET @ClientName = '%abc';

您可以使用纯串联内联:

WHERE ClientName LIKE '%' + @ClientName + '%'
或者,您可以通过允许通配符是可选的来更直接地控制此行为。如果您的问题是:

WHERE ClientName LIKE @ClientName
然后,可以使用以下方法之一强制执行不同的行为(以开始、包含或结束):

SET @ClientName = 'abc%';
SET @ClientName = '%abc%';
SET @ClientName = '%abc';