Выражение
name between 'A' and 'B'
эквивалентно
name>='A' and name<='B'
Таким образом, «Аргентина» означает> = «A» и <= «B», и оно удовлетворяет условию.Но «Боливия» - это НЕ <= «B».'Боливия'> 'B'.Он не просто смотрит на первую букву: он смотрит на всю строку.Конечно, так и должно быть: если бы он этого не делал, нельзя было бы сказать, что вы хотели бы диапазон, включающий «Смит», но не «Смитерс».
Для достижениячто вы хотите, вы можете сказать:
substr(name,1,1) between 'A' and 'B'
или:
name like 'A%' or name like 'B%'
или:
name>='A' and name<'C'