如何从Snowflake的users视图提取邮箱格式用户并生成指定JSON格式?
解决方案:通过Account Usage视图实现需求
完全可以实现你的需求,用Snowflake的SNOWFLAKE.ACCOUNT_USAGE.USERS视图就能解决SHOW USERS;的所有局限,具体SQL如下:
-- 生成指定结构的JSON结果,每个元素为{"email": "邮箱地址"} SELECT ARRAY_AGG(OBJECT_CONSTRUCT('email', NAME)) AS user_emails_json FROM SNOWFLAKE.ACCOUNT_USAGE.USERS WHERE NAME LIKE '%@%';
关键说明:
- 选择单个字段:直接从视图中选取
NAME列即可,无需处理SHOW命令返回的冗余字段 - 筛选邮箱格式:用
WHERE NAME LIKE '%@%'过滤包含@的有效邮箱地址 - 生成JSON:
OBJECT_CONSTRUCT('email', NAME)将每个邮箱包装成指定的键值对结构ARRAY_AGG()将所有结果聚合为一个JSON数组,方便直接导出或使用
权限注意事项:
执行前确保当前角色拥有SNOWFLAKE.ACCOUNT_USAGE.USERS视图的查询权限,如果没有,需要账号管理员执行授权:
GRANT SELECT ON SNOWFLAKE.ACCOUNT_USAGE.USERS TO ROLE <你的角色名称>;
内容的提问来源于stack exchange,提问作者SnowflakeDev
相关产品推荐
相关产品推荐

