I want to make a search using “between” clause over a string column. Doing some test I got this:
Let’s assume that there is a country table with a “name” column of type varchar. If I execute this query:
Select * from country where name between 'a' and 'b'
I got this result:
Argentina
.
.
.
Argelia.
It excludes those countries that starts with B which I found a little bit weird.
Is there a way to do this search in a more accurate way? Any other ideas for make this search?
Thanks in advance
The expression
is equivalent to
So ‘Argentina’ is >=’A’ and <=’B’ and it satisfies the condition. But ‘Bolivia’ is NOT <=’B’. ‘Bolivia’>’B’. It doesn’t just look at the first letter: it looks at the whole string. Which is surely the way it ought to be: if it didn’t do this, there’d be no way to say that you wanted a range that included ‘Smith’ but not ‘Smithers’.
To accomplish what you want, you could say:
or:
or: