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

Shr*_*ini 3 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";
Run Code Online (Sandbox Code Playgroud)

错误查询:

SELECT NAME, CREATED_ON, EMAIL, MUST_CHANGE_PASSWORD, EXPIRES_AT, PASSWORD_LAST_SET_TIME 
FROM "SNOWFLAKE"."ACCOUNT_USAGE"."USERS" 
WHERE "NAME" = "MYTESTUSER_1";
Run Code Online (Sandbox Code Playgroud)

错误:

SQL 编译错误:错误第 2 行位于位置 56 无效标识符“MYTESTUSER_1”

条款没有问题WHERE。对应的用户已存在。我也为其他一些用户检查过。同样的错误。

请帮忙。

GMB*_*GMB 8

在 Snowflake 在这方面遵循的标准 SQL 中,双引号代表标识符(列名、表名等)。在该子句的上下文中where,数据库将其理解"MYTESTUSER_1"为列的名称(显然,该列不存在),因此您会收到错误。

您需要一个文字字符串,因此您需要单引号。即改变:

WHERE "NAME" = "MYTESTUSER_1"
Run Code Online (Sandbox Code Playgroud)

到:

WHERE "NAME" = 'MYTESTUSER_1'
Run Code Online (Sandbox Code Playgroud)