You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake技术问询:如何正确筛选名称包含@domain的特定用户

搞定Snowflake筛选含@domain用户的问题

嘿,作为Snowflake新手遇到这个问题很正常——你的查询之所以返回所有用户,核心是没搞对LIKE操作符的用法~

问题出在哪?

你写的where name like '@domain',Snowflake会理解成只找名称完全等于"@domain"的用户。如果你的用户列表里没有刚好叫这个名字的用户,理论上应该返回空,但你说返回了所有用户,大概率是你查询的users表不是系统用户视图?先不管这个,先把筛选逻辑改对!

正确的筛选语句

要找名称里包含@domain的用户,得用%通配符(这个符号代表任意长度的任意字符,包括空字符),写法如下:

SELECT * 
FROM users 
WHERE name LIKE '%@domain%';

如果你的用户都是邮箱格式(比如xxx@domain.com),想精准匹配域名部分,还可以调整成这样(比如只匹配以@domain结尾的):

SELECT * 
FROM users 
WHERE name LIKE '%@domain';

要是想匹配完整域名(比如@domain.com),就改成:

SELECT * 
FROM users 
WHERE name LIKE '%@domain.com';

额外要注意的点

如果改了语句还是不对,建议排查这两个地方:

  • 确认查询的表是否正确:Snowflake里查看所有账户用户,应该用系统视图SNOWFLAKE.ACCOUNT_USERS,或者当前库的INFORMATION_SCHEMA.USERS。不过要注意,你得有MONITOR USAGE权限才能查看系统用户数据。比如正确的系统用户查询应该是:
SELECT * 
FROM SNOWFLAKE.ACCOUNT_USERS 
WHERE NAME LIKE '%@domain%';
  • 大小写问题:Snowflake默认不区分大小写,但如果用户名称是创建时加了引号的特殊标识符(比如"John@Domain"),可以用ILIKE来强制不区分大小写匹配,更稳妥:
SELECT * 
FROM SNOWFLAKE.ACCOUNT_USERS 
WHERE NAME ILIKE '%@domain%';

最后总结一下

核心就是用%通配符配合LIKE/ILIKE实现部分匹配,同时确保你查的是正确的用户视图,权限也到位~

内容的提问来源于stack exchange,提问作者SnowPablo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 15:54:06