SQL编译错误:错误行2在位置56无效的标识符

问题描述

我需要小的帮助来解决错误。我已经以ACCCOUNTADMIN角色(也适用于工作表)登录到SNowflake。不添加WHERE子句时,我可以成功运行查询。当我添加WHERE子句时,它将引发错误。这是两个查询

成功查询

SELECT NAME,CREATED_ON,EMAIL,MUST_CHANGE_PASSWORD,EXPIRES_AT,PASSWORD_LAST_SET_TIME 
FROM "SNowFLAKE"."ACCOUNT_USAGE"."USERS";

错误查询

SELECT NAME,PASSWORD_LAST_SET_TIME 
FROM "SNowFLAKE"."ACCOUNT_USAGE"."USERS" 
WHERE "NAME" = "MYTESTUSER_1";

错误

sql编译错误:位置56的错误第2行无效标识符'MYTESTUSER_1'

WHERE子句没有问题。对应的用户已存在。我也检查了其他一些用户。同样的错误

请帮助。

解决方法

在Snowflake为此遵循的标准SQL中,双引号代表标识符(列名,表名等)。在where子句的上下文中,数据库将"MYTESTUSER_1"理解为列名(显然不存在),因此会出现错误。

您需要文字字符串,因此需要单引号。也就是说,更改:

WHERE "NAME" = "MYTESTUSER_1"

收件人:

WHERE "NAME" = 'MYTESTUSER_1'