SQL 编译错误:位置 56 处的错误第 2 行无效标识符
Posted
技术标签:
【中文标题】SQL 编译错误:位置 56 处的错误第 2 行无效标识符【英文标题】:SQL compilation error: error line 2 at position 56 invalid identifier 【发布时间】:2020-09-02 20:27:18 【问题描述】:我需要一些帮助来解决错误。我已经使用 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";
错误:
'MYTESTUSER_1'
WHERE
子句没有问题。对应用户已存在。我也检查了其他一些用户。同样的错误。
请帮忙。
【问题讨论】:
【参考方案1】:在 Snowflake 在这方面遵循的标准 SQL 中,双引号代表标识符(列名、表名等)。在 where
子句的上下文中,数据库将 "MYTESTUSER_1"
理解为列的名称(显然,它不存在),因此您得到了错误。
你想要一个文字字符串,所以你需要单引号。也就是改变:
WHERE "NAME" = "MYTESTUSER_1"
收件人:
WHERE "NAME" = 'MYTESTUSER_1'
【讨论】:
谢谢。这是我这边的愚蠢错误。我忽略了单引号和双引号。以上是关于SQL 编译错误:位置 56 处的错误第 2 行无效标识符的主要内容,如果未能解决你的问题,请参考以下文章
Snowflake SQL 编译错误:位置 XX 处的语法错误行 XX 意外 '('