1

我正在尝试使用标准 SELECT ... AS 调用以使用 Python Salesforce API 重命名查询输出中的列,它会引发以下错误:

 ... unexpected token: 'AS'", 'errorCode': 'MALFORMED_QUERY'}

到目前为止,来自 SOQL 的大多数本地语言调用都在 API 中运行,从这里看来, SELECT ... AS 是有效的 SOQL。

查询大纲:

from simple_salesforce import Salesforce
sf = Salesforce(username=myusername, password=mypassword, security_token=mytoken)
query = "select closedate as Date from opportunity"
query_list = sf.query_all(query)['records']

即使按照上面链接中的建议将新列名放在引号内,编辑错误仍然存​​在:

query = "select closedate as \"Date\" from Opportunity"

谢谢

4

2 回答 2

0

语法似乎不正确。

query = "select closedate <insert alias> from Opportunity"根据此处记录的别名表示法尝试: https ://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_alias.htm

于 2019-03-08T13:20:20.747 回答
0

正如 Terminus 所提到的,在大多数情况下(包括您的情况), SOQL 字段别名在 SOQL 中是不可能的。我看到在 SOQL 中使用别名的唯一情况是聚合查询。例如,在 apex 中,您可以编写:

AggregateResult myResult = [SELECT count(Id) SpecialName FROM Contact];
system.debug(myResult);

并收到结果:

DEBUG|AggregateResult:{SpecialName=1630}

在 python via simple-salesforce 中,它看起来像这样:

sf.query_all('SELECT count(Id) SpecialName FROM Contact')

结果:

   OrderedDict([('totalSize', 1),
             ('done', True),
             ('records',
              [OrderedDict([('attributes',
                             OrderedDict([('type', 'AggregateResult')])),
                            ('SpecialName', 6587)])])])

如果这回答了您的问题,请标记为已回答。

于 2019-05-16T22:17:14.650 回答