Sql 如何在不包括某些值的较大字符串中搜索字符串?
我有一个带有大字符串的字段-一个包含代码的nvarchar字段。我有一个查询,可以在代码字段中使用“%CustomField15%”之类的语句搜索字符串,它的工作方式与预期的一样 但是,当我使用像“%CustomField1%”这样的命令时,我也会得到“CustomField11”、“CustomField12”、“CustomField13”等命令的结果 我如何在没有任何其他值的情况下返回“CustomField1” 有时我确实想搜索CustomField15或任何其他值,所以我不能总是消除它。有时是CustomField2或CustomField22等等。基本上,当搜索字符串仅为CustomField1、2或3时,我需要一个解决方案Sql 如何在不包括某些值的较大字符串中搜索字符串?,sql,sql-server-2014,Sql,Sql Server 2014,我有一个带有大字符串的字段-一个包含代码的nvarchar字段。我有一个查询,可以在代码字段中使用“%CustomField15%”之类的语句搜索字符串,它的工作方式与预期的一样 但是,当我使用像“%CustomField1%”这样的命令时,我也会得到“CustomField11”、“CustomField12”、“CustomField13”等命令的结果 我如何在没有任何其他值的情况下返回“CustomField1” 有时我确实想搜索CustomField15或任何其他值,所以我不能总是消除它
DECLARE @Field AS nvarchar(25) = 'CustomField1';
SELECT *
FROM Table
WHERE Code LIKE '%'+@Field+'%';
编辑:回答几个初始问题:在搜索字段名之前或之后可能会有很多代码。这是完整的代码,我在任何地方搜索存储代码中使用的字段。字段名后面可能有空格,也可能没有空格,因为它取决于编写被搜索代码的人倾向于如何编写代码
在表中存储的伪代码中搜索字段的超级简单示例:
UPDATE table
SET CustomField1= CustomField2 + [Salary]
WHERE [CustomField1] > 100000
如果我搜索CustomField1并在末尾加上空格,我将不会得到任何结果。人员可使用无空间的支架或操作员。另一个例子可能就好像我在本例中搜索CustomField2一样
现在,我可以返回此行,但在搜索“CustomField1”时,仍必须清除包含“CustomField11”、“12”、“13”等内容的结果。字段名后面是否有内容?例如,如果后面有空格或逗号,可以使用
%CustomField1%
(注意第二个空格之前的空格%)或%CustomField1,%%
。(第二个字符前加逗号。)你能举一些有代表性的例子来说明“代码”字段是什么样的吗?