我正在尝试使用SELECT ... AS调用来使用Python Salesforce API重命名查询输出中的列,并且抛出以下错误:
... unexpected token: 'AS'", 'errorCode': 'MALFORMED_QUERY'}
到目前为止,大多数来自SOQL的本地语言调用都已在API中起作用,从here看来,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"
谢谢
答案 0 :(得分: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
答案 1 :(得分:0)
正如Terminus所述,在大多数情况下,包括您在内,SOQL都无法在SOQL中使用SOQL字段别名。我看到别名在SOQL中起作用的唯一情况是在聚合查询中。例如,在顶点中,您可以编写:
AggregateResult myResult = [SELECT count(Id) SpecialName FROM Contact];
system.debug(myResult);
并接收结果:
DEBUG|AggregateResult:{SpecialName=1630}
在Python中,通过simple-salesforce看起来像这样:
sf.query_all('SELECT count(Id) SpecialName FROM Contact')
结果:
OrderedDict([('totalSize', 1),
('done', True),
('records',
[OrderedDict([('attributes',
OrderedDict([('type', 'AggregateResult')])),
('SpecialName', 6587)])])])
如果此回答您的问题,请标记为已回答。