sql >> Base de Datos >  >> RDS >> PostgreSQL

Cláusula entre SQL con columnas de cadenas

La expresión

name between 'A' and 'B'

es equivalente a

name>='A' and name<='B'

Entonces 'Argentina' es>='A' y <='B' y cumple la condición. Pero 'Bolivia' NO es <='B'. 'Bolivia'>'B'. No solo mira la primera letra:mira toda la cadena. Que es sin duda la forma en que debería ser:si no hiciera esto, no habría forma de decir que quería un rango que incluyera 'Smith' pero no 'Smithers'.

Para lograr lo que quieres, podrías decir:

substr(name,1,1) between 'A' and 'B'

o:

name like 'A%' or name like 'B%'

o:

name>='A' and name<'C'