问题是我需要在SOQL查询中比较两个不同类型的字段。

TextField是一个选择列表(实际上是文本),IntField是一个Number(2,0)。不能更改这些字段的类型。

我想写SOQL之类的;

SELECT Id FROM SomeObject__c
WHERE Cast(TextField as Integer) > IntField

显然Cast(TextField as Integer)不起作用。

有关SOQL中类型转换的任何建议。正常的APEX函数(例如integer.valueof)在这里似乎没有任何帮助。

谢谢

最佳答案

SOQL本身不支持强制转换,但是您总是可以伸出援助之手;)

SomeObject__c中创建一个数值公式字段:

IF(ISNUMBER(TextField__c), VALUE(TextField__c), NULL)

或类似的东西,具体取决于您对强制转换为int的定义。现在,您可以在SOQL查询中使用此字段。

10-07 15:25