2012-05-17 41 views
0

Salesforce自定義對象中的列(id)之一是字符串類型,儘管它始終包含長類型值。我想運行這樣的查詢。在SOQL中使用字符串比較

其中id> ='123'和id < ='123456';

有沒有解決方案?無法更改Salesforce中列的數據類型。

回答

3

數據類型轉換不可能作爲SOQL語法的一部分。您需要取回完整的結果集並過濾結果。或者,如果您無法更改數據類型,那麼也許可以使用公式字段或工作流程更新將該字段複製到隱藏字段中,您可以執行比查詢更少的隱藏字段。這不是最佳實踐,但如果你真的堅持解決方案,這是一個想法。

最終,如果需要基於文本或將數據類型更改爲數字,則正確答案將填充數字前導零。

-1

如果你的ID總是包含long類型的值,那麼你可以使用下面的where子句

WHERE CONVERT(BIGINT, id) BETWEEN 123 AND 123456 

但是,如果你的ID是不是一個數值,它會引發錯誤

+0

是SOQL支持的Convert函數嗎?我嘗試在Force.com瀏覽器中,但似乎無法正常工作。 – RandomQuestion

+0

我不確定SOQL,但你可以參考[這篇文章](http://stackoverflow.com/questions/5915584/soql-type-conversion-salesforce-com) – Nick