SQL 2012 + LIKE + SPRINTF

时间:2013-10-04 01:02:12

标签: sql sql-server

鉴于此脚本:

DECLARE @token NVARCHAR(max)
SET @token = 'mytexttosearchfor'
SELECT * FROM myTable WHERE myField1 LIKE '%@token%'

它无效。在此上下文中使用内容@token的正确方法是什么?

3 个答案:

答案 0 :(得分:3)

您可以使用string concatenation,如下所示:

SELECT * FROM myTable WHERE myField1 LIKE '%'+@token+'%'

您的方法无法按预期工作的原因是变量未在字符串文字中解析:'%@token%'表示由%@t组成的字符串,oken%字符 - 不执行令牌替换。

答案 1 :(得分:1)

尝试这样的事情

DECLARE @token NVARCHAR(max)
SET @token = 'mytexttosearchfor'
SELECT * FROM myTable WHERE myField1 LIKE '%' + @token + '%'

答案 2 :(得分:1)

你应该

SELECT * FROM myTable WHERE myField1 LIKE '%'+@token+'%'