sql >> Databasteknik >  >> RDS >> PostgreSQL

SQL Between-sats med strängkolumner

Uttrycket

name between 'A' and 'B'

motsvarar

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

Så 'Argentina' är>='A' och <='B' och det uppfyller villkoret. Men 'Bolivia' är INTE <='B'. 'Bolivia'>'B'. Den tittar inte bara på den första bokstaven:den ser på hela strängen. Vilket säkert är så det borde vara:om det inte gjorde det här skulle det inte finnas något sätt att säga att du ville ha ett sortiment som inkluderade 'Smith' men inte 'Smithers'.

För att uppnå det du vill kan du säga:

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

eller:

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

eller:

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


  1. MySQL:Hur kopierar man rader, men ändrar några fält?

  2. MySQL CEILING() Funktion – Runda uppåt till närmaste heltal

  3. Hur man extraherar en delsträng från en sträng i Oracle/SQLite

  4. Varför slog PostgreSQL samman användare och grupper till roller?