“Where 子句”在 AWS Athena 中不起作用

L.Y*_*ang 2 amazon-web-services amazon-athena

数据样本

我使用 AWS Glue 控制台从 Athena 中的 S3 存储桶创建了一个表。您可以在上面的屏幕截图中看到相关部分。我混淆了列名,所以假设列名是"a test column". 我想在该列中选择值为D的记录。我尝试运行的查询是:

SELECT 
    * 
FROM 
    table 
WHERE 
    "a test column" = "D"
Run Code Online (Sandbox Code Playgroud)

什么都没有返回。我还尝试使用IS而不是=,以及在子句中用单引号而不是双引号将D括起来WHERE:

-- Tried this
WHERE 
    "a test column" = 'D'

-- Tried this
WHERE 
    "a test column" IS "D"

-- Tried this
WHERE 
    "a test column" IS 'D'
Run Code Online (Sandbox Code Playgroud)

什么都行不通。有人可以帮忙吗?谢谢你。

我得到的错误信息是

不匹配的输入“where”期望(服务:amazon athena;状态代码:400;错误代码:无效请求异常;请求 ID:8f2f7c17-8832-4e34-8fb2-a78855e3c17d)

kk.*_*kk. 5

查询语法有问题。引用字符串值时使用单引号 ('),因为双引号引用表中的列名。

SELECT 
    * 
FROM 
    table 
WHERE 
    "column_name" = 'D'
Run Code Online (Sandbox Code Playgroud)


L.Y*_*ang 0

意想不到的答案(如果我在原帖中没有说清楚的话,也很抱歉)是,我不能在 where 子句前面添加“限制 200”。我必须在最后添加它。希望它对其他人有帮助。