SQL select语句我正在寻找的文本有单引号

时间:2017-08-30 08:44:06

标签: sql-server select sql-like double-quotes single-quotes

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

snapshot of data

我的选择陈述是:

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%'

但不幸的是,它带来了太多结果,因为它带回的数据表明:'状态从'导入错误'变为'等待准备' 我只是在寻找'状态从'等待准备'变为'导入错误''

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

2 个答案:

答案 0 :(得分:0)

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

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%'

答案 1 :(得分:0)

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

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