PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Clausola SQL Between con colonne di stringhe

L'espressione

name between 'A' and 'B'

è equivalente a

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

Quindi 'Argentina' è>='A' e <='B' e soddisfa la condizione. Ma 'Bolivia' NON è <='B'. 'Bolivia'>'B'. Non guarda solo la prima lettera:guarda l'intera stringa. Che è sicuramente il modo in cui dovrebbe essere:se non lo facesse, non ci sarebbe modo di dire che volevi una gamma che includesse "Smith" ma non "Smithers".

Per realizzare ciò che desideri, potresti dire:

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

oppure:

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

oppure:

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