Использование сравнения в строках в SOQL
Одним из столбцов (id) в пользовательском объекте Salesforce является тип String, хотя он всегда содержит длинные значения типа. Я хочу выполнить запрос что-то вроде этого.
Где id >= '123' и id <= '123456';
Есть ли решение для этого? Невозможно изменить тип данных столбца в Salesforce.
2 ответа
Преобразование типов данных невозможно в рамках синтаксиса SOQL. Вам нужно будет вернуть полный набор результатов и отфильтровать результаты. Или, если вы не можете изменить тип данных, то, возможно, вы можете использовать поле формулы или обновление рабочего процесса, чтобы скопировать поле в скрытое поле, для которого вы можете выполнить запрос больше, чем меньше. Это не лучшая практика, но это идея, если вы действительно застряли в поиске решения.
В конечном счете, хотя правильным ответом будет либо заполнение числа начальными нулями, если они должны быть основаны на тексте, либо изменение типа данных на число.
Если ваш идентификатор всегда содержит длинные значения типа, то вы можете использовать следующее предложение where
WHERE CONVERT(BIGINT, id) BETWEEN 123 AND 123456
Однако это вызовет ошибку, если ваш идентификатор не является числовым значением