BETWEEN
используется в предложении WHERE
для выбора диапазона данных между двумя значениями.
Если я прав, исключается ли конечная точка диапазона или нет, это зависит от СУБД.
Что я не могу понять в следующем:
Если у меня есть таблица значений, и я делаю следующий запрос:
SELECT food_name
FROM health_foods
WHERE calories BETWEEN 33 AND 135;`
Запрос возвращает строки результатов, включая калории =33 и калории =135 (т. е. конечные точки диапазона включаются).
Но если я сделаю:
SELECT food_name
FROM health_foods
WHERE food_name BETWEEN 'G' AND 'O';
Я не получаю строки с food_name
, начинающиеся с O
. т.е. конец диапазона исключается.
Чтобы запрос работал должным образом, я набираю:
SELECT food_name
FROM health_foods
WHERE food_name BETWEEN 'G' AND 'P';`
Мой вопрос: почему такая разница для BETWEEN
для чисел и текстовых данных?