就像操作员不在 SQL 服务器 2019 中工作一样
Like operator not working in SQL server 2019
所以我的问题基本上可以总结在我写的这段小代码中
declare @report varchar(100) = 'fajkfgadjk'
if @report like '%_%'
begin
select 1
end
else
begin
select 2
end
它应该显示 2 但它显示 1
它不会发生在其他人身上,比如 ',&^'
有人可以帮我吗?我想继续使用“_”,有什么解决方法吗?
谢谢
_
是通配符。如果你想字面上匹配字符串中的_
,你需要转义它。
IF @report like '%[_]%' -- will return true for `abc_def` but not `abcdef`
如果方括号有问题也可以用ESCAPE
,
例如
IF @report like '%`_%' ESCAPE '`'
所以我的问题基本上可以总结在我写的这段小代码中
declare @report varchar(100) = 'fajkfgadjk'
if @report like '%_%'
begin
select 1
end
else
begin
select 2
end
它应该显示 2 但它显示 1 它不会发生在其他人身上,比如 ',&^'
有人可以帮我吗?我想继续使用“_”,有什么解决方法吗?
谢谢
_
是通配符。如果你想字面上匹配字符串中的_
,你需要转义它。
IF @report like '%[_]%' -- will return true for `abc_def` but not `abcdef`
如果方括号有问题也可以用ESCAPE
,
例如
IF @report like '%`_%' ESCAPE '`'