【Salesforce】SOQLでTrimとかReplaceできる?
SOQLでTrimとかReplaceは使えるか?
こんな感じのイメージです。
1 2 3 4 5 6 7 |
SELECT Id ,Name FROM Account WHERE TRIM(Name) = 'GenePoint' |
結論:出来ない(現時点では)
上記のSOQLを実行しようとするとTRIMなんて関数ないよと怒られます。SOQLにそういった関数は用意されていないようでした。残念。
ではどうするか?
数式にはTrim関数やSubstitute関数があるので、それで代用するのが良いでしょう。
例えば取引先名の半角スペースを除去した上で文字列比較を行いたい場合、こんな感じの数式項目を作ります。

SOQLでは、この項目とターゲットの文字列を比較してあげれば目的のことはできます。
1 2 3 4 5 6 7 |
SELECT Id ,Name FROM Account WHERE NameTrim__c = 'GenePoint' |
あとは、例えば取引先のハイフンを除去した上で文字列比較をしたい場合なんかは、こんな感じの数式項目を作ってあげます。

ちょっと面倒ですけどね。