SQL SERVER中的ESCAPE SEQUENCE

时间:2014-05-28 17:09:36

标签: sql sql-server

我必须在我的表上执行where by子句才能在我的表中找到确切的字符串匹配 它在以下场景中正常工作

declare @issuerName varchar(max)
set @issuerName = 'WIDEOPENWEST FINANCE, LLC'

select * 
from company 
where ParentName = @issuerName

但未能通过以下查询

declare @issuerName varchar(max)
set @issuerName = 'TOYS 'R' US, INC'

select * 
from company 
where ParentName = @issuerName

因为单引号。

有人能让我知道解决它的最佳方法是什么,因为单引号可以出现在字符串中的任何位置?我尝试在这个变量周围添加单引号,但它不起作用。

set @issuerName = ''TOYS 'R' US, INC''

1 个答案:

答案 0 :(得分:5)

你这样做:

set @issuerName = 'TOYS ''R'' US, INC'

将转义的'放入字符串本身。

此外,如果您需要使用LIKE子句更改转义字符,则可能需要查看ESCAPE关键字,该关键字可让您更改用于当前查询的字符。请参阅Using [] and ESCAPE clause in SQL Server LIKE query