0

有没有办法在 SOQL 中做到这一点?

(这是一条sql语句)

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

我正在尝试执行 SOQL WHERE 语句来比较帐户和机会。

这就是我要的:

选择转换(VarChar(35),FieldName1),FieldName2

来自 tbl

其中字段名称 1 = 字段名称 2

我认为这是我需要的,因为这是我收到的错误消息:

SOBJECT 的绑定表达式类型无效:String 类型列的帐户

4

1 回答 1

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 或您发出查询的任何语言中进行转换。

于 2013-09-03T19:11:39.007 回答