我需要小的帮助来解决错误。我已经以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
子句没有问题。对应的用户已存在。我也检查了其他一些用户。同样的错误。
请帮助。
答案 0 :(得分:2)
在Snowflake为此遵循的标准SQL中,双引号代表标识符(列名,表名等)。在where
子句的上下文中,数据库将"MYTESTUSER_1"
理解为列名(显然不存在),因此会出现错误。
您需要文字字符串,因此需要单引号。也就是说,更改:
WHERE "NAME" = "MYTESTUSER_1"
收件人:
WHERE "NAME" = 'MYTESTUSER_1'