我必须在我的表上执行where by子句以在我的表中找到确切的字符串匹配,它在以下场景中工作正常
declare @issuerName varchar(max)
set @issuerName = 'WIDEOPENWEST FINANCE, LLC'
select *
from company
where ParentName = @issuerName
Run Code Online (Sandbox Code Playgroud)
但对以下查询失败
declare @issuerName varchar(max)
set @issuerName = 'TOYS 'R' US, INC'
select *
from company
where ParentName = @issuerName
Run Code Online (Sandbox Code Playgroud)
因为单引号.
有人能让我知道解决它的最佳方法是什么,因为单引号可以出现在字符串中的任何位置?我尝试在这个变量周围添加单引号,但它不起作用.
set @issuerName = ''TOYS 'R' US, INC''
Run Code Online (Sandbox Code Playgroud)
你这样做:
set @issuerName = 'TOYS ''R'' US, INC'
Run Code Online (Sandbox Code Playgroud)
将转义放入'字符串本身.
此外,如果您需要像使用LIKE子句一样更改转义字符,则可能需要检查ESCAPE关键字,以便更改用于当前查询的字符.请参阅SQL Server LIKE查询中的使用[]和ESCAPE子句.