我有可能在SOQL中执行此操作吗?
(这是一个sql语句)
转换(VARCHAR(35),[FieldName1])
我正在尝试使用SOQL WHERE语句来比较帐户和商机。
这就是我想要的:
SELECT Convert(VarChar(35),FieldName1),FieldName2
来自tbl
其中FieldName1 = fieldName2
我认为这是我需要的,因为这是我得到的错误信息:
SOBJECT的无效绑定表达式类型:类型为String
的列的帐户答案 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或您发出查询的任何语言之后进行转换。