У вас есть два варианта.
Первое - это очистить ваши данные перед использованием.
Прежде чем какой-либо URL-адрес будет сохранен в системе, добавьте или удалите (при желании) косую черту, если необходимо. Таким образом, убедитесь, что все URL-адреса хранятся в одном формате для простоты использования.
Второй - очистить ваши данные во время выполнения.
Я не защищаю эти варианты, поскольку они несут ненужные накладные расходы и могут помешать оптимальному использованию индексов.
RTRIM(A.PROPERTY_VALUE, '/') = RTRIM(B.PROPERTY_VALUE, '/')
Чистый код, но, вероятно, препятствует использованию индекса.
- Значения из Таблицы A и Таблицы B изменяются
- Вероятно, для обеих таблиц требуется SCAN
Или ...
- (убедитесь, что B.PROPERTY_VALUE заканчивается на «/», затем выполните сравнение); OR
- (убедитесь, что B.PROPERTY_VALUE НЕ заканчивается '/', затем выполните сравнение)
Если любое из этих условий выполняется, URL-адреса совпадают.
A.PROPERTY_VALUE = (CASE WHEN RIGHT(B.PROPERTY_VALUE, 1) = '/' THEN B.PROPERTY_VALUE ELSE B.PROPERTY_VALUE + '/' END)
OR
A.PROPERTY_VALUE = (CASE WHEN RIGHT(B.PROPERTY_VALUE, 1) = '/' THEN RTRIM(B.PROPERTY_VALUE, '/') ELSE B.PROPERTY_VALUE END)
Гораздо сложнее, но может быть более дружественным к индексам
- Изменяются только значения таблицы B
- нужен СКАН на Б
- ПОИСК ИНДЕКСА на А теперь возможен