如何在Salesforce SOQL中显式转换 - SOBJECT的绑定表达式类型无效

时间:2013-09-02 22:54:15

标签: salesforce soql

我有可能在SOQL中执行此操作吗?

(这是一个sql语句)

转换(VARCHAR(35),[FieldName1])

我正在尝试使用SOQL WHERE语句来比较帐户和商机。

这就是我想要的:

SELECT Convert(VarChar(35),FieldName1),FieldName2

来自tbl

其中FieldName1 = fieldName2

我认为这是我需要的,因为这是我得到的错误信息:

SOBJECT的无效绑定表达式类型:类型为String

的列的帐户

1 个答案:

答案 0 :(得分:0)

SOQL没有能力执行左侧和右侧都是字段的比较,因此您无法在纯SOQL中执行此操作。如果这是一次性查询(即您不必在运行中构建这样的查询),那么您可以定义一个类似于

的公式字段
IF(Field1__c=Field2__c,1,0)

或者如果类型不同

IF(TEXT(Field1__c)=Field2__c,1,0)

然后你的SOQL就是

SELECT Field1__c WHERE MyFormulaField__c=1

如果需要对它进行概括,还有其他更复杂的方法可以在Apex中执行此操作,但公式字段方法是产生最简单查询结构的最简单方法。

此外,您无法在SOQL中将任何内容转换为VARCHAR。您必须在我上面建议的公式字段中进行转换,或者在Apex或您发出查询的任何语言之后进行转换。