Мне нужно добавить возможность пользователям моего программного обеспечения выбирать записи по диапазонам символов.
Как я могу написать запрос, который возвращает все виджеты из таблицы, чье имя находится в диапазоне Ba-Bi, например?
В настоящее время я использую операторы больше и меньше, поэтому приведенный выше пример будет выглядеть так:
select * from widget
where name >= 'ba' and name < 'bj'
Обратите внимание, как я «увеличил» последний символ верхней границы от i до j, чтобы «байк» не был пропущен.
Существует ли общий способ поиска следующего символа после данного символа на основе сопоставления поля или было бы безопаснее создать второе условие?
select * from widget
where name >= 'ba'
and (name < 'bi' or name like 'bi%')
Мое приложение должно поддерживать локализацию. Насколько чувствителен этот вид запроса к различным наборам символов?
Мне также нужно поддерживать MSSQL и Oracle. Каковы мои варианты обеспечения того, чтобы регистр символов игнорировался независимо от того, какой язык отображается в данных?