在 s3 select 查询中转义单引号

escape single quote in s3 select query

样本数据,存储在S3的一个文件中。 如您所见,我的数据格式是每行 json

{"first":  "John", "last": "Smith"}
{"first":  "Mary", "last": "O'Hara"}
{"first":  "Mary", "last": "Oats"}

我最终的 objective 是按姓氏查询,并使用 like 运算符和用户提供的子字符串。所以我一步一步从易到难:

此查询有效并且 returns 所有行:

select s.* from s3object s 

好!让我们继续。 我尝试的下一个查询有效 returns,正如预期的那样,John Smith

select s.* from s3object s where s."last" = 'Smith'

下一步是通过姓氏的子字符串进行尝试。让我们找出所有姓氏以 "O".

开头的人
select s.* from s3object s where s."last" like 'O%';

这有效,returns 我数据集中的两个玛丽。

下一步是行不通的。我想查找姓氏以 O 和撇号开头的所有用户。这是我无法工作的。我试过了:

select s.* from s3object s where s."last" like 'O'%'
select s.* from s3object s where s."last" like 'O\'%'
select s.* from s3object s where s."last" like "O'%"

None 其中有效。如何在 s3 select?

中的字符串文字中放置单引号 (')

你只需要使用两个单引号

SELECT *
FROM Test.testing
WHERE "last" = 'O''Hara'; 

尝试以下查询:

select s.* from s3object s where s."last" like 'O''%'

要转义单引号,您需要在它前面再指定一个单引号。