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

时间:2020-09-02 20:27:18

标签: sql string where-clause snowflake-cloud-data-platform

我需要小的帮助来解决错误。我已经以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, CREATED_ON, EMAIL, MUST_CHANGE_PASSWORD, EXPIRES_AT, PASSWORD_LAST_SET_TIME 
FROM "SNOWFLAKE"."ACCOUNT_USAGE"."USERS" 
WHERE "NAME" = "MYTESTUSER_1";

错误:

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

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

请帮助。

1 个答案:

答案 0 :(得分:2)

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

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

WHERE "NAME" = "MYTESTUSER_1"

收件人:

WHERE "NAME" = 'MYTESTUSER_1'