我正在尝试使用Salesforce查询语言从电子邮件地址获取域名列表。这可能非常简单,我通常会在postgresql中使用split_part
来完成,例如:
SELECT split_part(Email, '@', 2)
FROM Lead
GROUP BY 1
我一直在挖掘SOQL文档,无法真正找到任何标准的字符串函数。但是,有这个salesforce社区的答案:https://success.salesforce.com/answers?id=90630000000gi8EAAQ使用LEFT,FIND和SUBSTITUTE。我尝试了一些简单的事情:
SELECT LEFT(Email, 3) FROM Lead limit 10
但是得到:
Error: MALFORMED_QUERY
Message: SELECT LEFT(Email, 3) FROM Lead limit 10
ERROR at Row:1:Column:17\nunexpected token: ','
是否已弃用这些功能?
我有很多潜在的域名,并且不想查询每个可能的电子邮件地址的页面和页面,或者我会快速达到Salesforce API限制。
答案 0 :(得分:1)
这些功能在SOQL / SOSL中不可用。您提供的链接指的是自定义公式字段。您是否尝试使用UI或API获取数据?在不知道如何提取数据的情况下,以下是一般性建议:
您可以在名为Email_Domain__c
的对象上创建公式字段。然后,您可以按该字段查询或过滤。
您还可以在报告中使用自定义公式来过滤结果。
使用Apex和/或Visualforce提取/显示/导出数据。
使用LIKE
关键字按域名过滤,如下所示:
SELECT Email FROM LEAD WHERE Email LIKE '%gmail.com%'
LIKE
关键字效率不高。 https://trailhead.salesforce.com/en/modules/database_basics_dotnet/units/writing_efficient_queries