Salesforce SOQL字符串函数不起作用(LEFT,SUBSTITUTE等)

时间:2018-01-08 16:28:16

标签: salesforce soql

我正在尝试使用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限制。

1 个答案:

答案 0 :(得分:1)

这些功能在SOQL / SOSL中不可用。您提供的链接指的是自定义公式字段。您是否尝试使用UI或API获取数据?在不知道如何提取数据的情况下,以下是一般性建议:

  1. 您可以在名为Email_Domain__c的对象上创建公式字段。然后,您可以按该字段查询或过滤。

  2. 您还可以在报告中使用自定义公式来过滤结果。

  3. 使用Apex和/或Visualforce提取/显示/导出数据。

  4. 使用LIKE关键字按域名过滤,如下所示:

  5. SELECT Email FROM LEAD WHERE Email LIKE '%gmail.com%'

    LIKE关键字效率不高。 https://trailhead.salesforce.com/en/modules/database_basics_dotnet/units/writing_efficient_queries