我有一个要求,我必须将参数 @ClientName 传递给查询,并且我必须使用 @ClientName 才能在 like 过滤器中使用。
请看下文。
DECLARE @ClientName VARCHAR(20) = 'abc'
SELECT ID,ClientName
FROM ClientTable
WHERE ClientName LIKE '%@ClientNAme%'
请让我知道,如果还有其他替代方法可以实现这一点。
我有一个要求,我必须将参数 @ClientName 传递给查询,并且我必须使用 @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';
DECLARE @ClientName VARCHAR(20) = 'abc'
SELECT ID,ClientName
FROM ClientTable
WHERE ClientName LIKE '%'+@ClientName+'%'