Snowflake中如何根据邮箱查询用户及解决SQL编译错误
Snowflake根据邮箱查询用户的正确方法
错误原因
你遇到的invalid identifier报错,核心问题是在WHERE条件里用双引号包裹了邮箱字符串"test@example.com"。在Snowflake语法规则中,双引号仅用于定义大小写敏感或含特殊字符的标识符(比如列名、表名),而字符串常量必须使用单引号包裹,否则Snowflake会把它误认为是一个列名或其他标识符,导致找不到对应对象的报错。
修正后的show users + result_scan写法
将条件中的双引号替换为单引号即可:
show users; select "email" from table(result_scan(last_query_id())) WHERE "email" = 'test@example.com' limit 1;
更高效的替代方案
直接查询Snowflake内置的账户级系统视图SNOWFLAKE.ACCOUNT_USERS,这种方式不需要依赖show users的查询结果,写法更简洁且稳定性更高:
select email from snowflake.account_users where email = 'test@example.com';
内容的提问来源于stack exchange,提问作者Santhosh
相关产品推荐
相关产品推荐

