有没有办法在 SOQL 中做到这一点?
(这是一条sql语句)
转换(varchar(35),[FieldName1])
我正在尝试执行 SOQL WHERE 语句来比较帐户和机会。
这就是我要的:
选择转换(VarChar(35),FieldName1),FieldName2
来自 tbl
其中字段名称 1 = 字段名称 2
我认为这是我需要的,因为这是我收到的错误消息:
SOBJECT 的绑定表达式类型无效:String 类型列的帐户
有没有办法在 SOQL 中做到这一点?
(这是一条sql语句)
转换(varchar(35),[FieldName1])
我正在尝试执行 SOQL WHERE 语句来比较帐户和机会。
这就是我要的:
选择转换(VarChar(35),FieldName1),FieldName2
来自 tbl
其中字段名称 1 = 字段名称 2
我认为这是我需要的,因为这是我收到的错误消息:
SOBJECT 的绑定表达式类型无效:String 类型列的帐户
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 或您发出查询的任何语言中进行转换。