OriginalGriff
Потому что он использует сравнение строк.
Когда вы сравниваете строки, они сравниваются символ за символом, и результат всего сравнения исходит из первой разницы в паре.
Поэтому, когда вы сравниваете "а" с "Эндрю", " а "ниже, потому что первое различие заключается в том, что" а "заканчивается перед "Эндрю". Когда вы добираетесь до "D", происходит то же самое: "D" идет перед любой строкой, начинающейся с "D". Поскольку BETWEEN указывает конец последовательности, ни одно имя, начинающееся с буквы "D", но имеющее более одной буквы, не будет находиться в этом диапазоне.
Либо используйте подстроку для извлечения первого символа, либо используйте "Е" в качестве верхнего предела и добавьте специальную проверку, чтобы исключить имена, которые являются просто "Е".