SQL select 我要查找的文本包含单引号的语句

SQL select statement where the text I am looking for has single quotes

我正在尝试在 Microsoft SQL 服务器管理工​​作室中执行 select 语句。数据如下所示:

我的select声明是:

SELECT * FROM OSUSR_W7I_INVENTORYCHANGELOG 
WHERE OBJECTTYPEID = 3
and CREATEDBY is null
and TEXT = 'State changed from ''Awaiting Prep'' to ''Import Error'''

但这没有返回任何结果,尽管有很多记录包含此文本。

我能够使用以下语句检索一些数据:

SELECT * FROM OSUSR_W7I_INVENTORYCHANGELOG 
WHERE OBJECTTYPEID = 3
and CREATEDBY is null
and TEXT like '%Awaiting Prep%'
and TEXT like '%Import Error%'

但不幸的是,它返回的结果太多,因为它返回的数据表明:“状态从 'Import Error' 更改为 'Awaiting Prep'” 我只在其中寻找“状态从 'Awaiting Prep' 更改为 'Import Error'”

请任何人帮忙。通过阅读其他帖子,在其中放入双引号应该可以解决单引号的问题,但在这种情况下它不起作用。 非常感谢

您可以使用 % 作为占位符将您的赞合并为一个,而不是:

SELECT * FROM OSUSR_W7I_INVENTORYCHANGELOG 
WHERE OBJECTTYPEID = 3
and CREATEDBY is null
and TEXT like '%Awaiting Prep%'
and TEXT like '%Import Error%'

做:

SELECT * FROM OSUSR_W7I_INVENTORYCHANGELOG 
WHERE OBJECTTYPEID = 3
and CREATEDBY is null
and TEXT like '%Awaiting Prep%Import Error%'

您可以尝试在 sql 服务器中使用 LTRIM 和 RTRIM。如果有一些白色的情况space。否则你的陈述似乎没问题

SELECT * FROM OSUSR_W7I_INVENTORYCHANGELOG 
WHERE OBJECTTYPEID = 3
and CREATEDBY is null
and LTRIM(RTRIM(TEXT)) = 'State changed from ''Awaiting Prep'' to ''Import 
Error'''