有人可以帮我找到值的问题
City!@#$%^&*()_+-={}|:"<>?;''./[]\/*-+.
存储在一个列中,该列触发选择查询,与=
运算符一起使用时工作正常,但在与LIKE
运算符一起使用时不起作用。
例如:
create table test_kee (some_column nvarchar(50));
insert into test_kee
values ('City!@#$%^&*()_+-={}|:"<>?;''./[]\/*-+.');
此查询工作正常:
select *
from test_kee
where some_column = 'City!@#$%^&*()_+-={}|:"<>?;''./[]\/*-+.';
但是这个查询不起作用:
select *
from test_kee
where some_column like '%City!@#$%^&*()_+-={}|:"<>?;''./[]\/*-+.%';
最佳答案
字符[
。 ]
、%
和 _
对于 like
运算符具有特殊含义。
如果您使用 like
运算符,则需要以不同的方式处理它们。
具体来说,您需要使用然后在 escape
子句中指定的字符对它们进行转义:
select *
from test_kee
where some_column like '%City!@#$~%^&*()~_+-={}|:"<>?;''./~[~]\/*-+.%' escape '~';
更多详细信息请参阅 official documentation
关于sql-server-2016 - 值中的特殊字符不能与 like 运算符一起使用,而在 SQL Server 中与 = 运算符一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59028556/