Guía rápida de sql BETWEEN

El operador BETWEEN nos sirve para seleccionar valores en un rango. Los valores pueden ser números, textos o datos.

Hay que tener en cuenta que este operador puede obtener diferentes resultados dependiendo de la BBDD con la que se este trabajando de este modo puede o no incluir los valores que se introducen como límites, o incluso solo tomar el primero y no el último. Por esta razón es interesante que se pruebe el funcionamiento antes de utilizarlo en un proyecto en desarrollo.

Su sintaxis es:

SELECT * FROM tabla WHERE columna BETWEEN valor_1 AND valor_2

Del mismo modo tenemos el operador NOT BETWEEN que nos selecciona los valores que no se encuentran en el rango elegido.

SELECT * FROM tabla WHERE columna BETWEEN valor_1 AND valor_2

Como siempre una vez que hemos visto su funcionamiento, vamos a realizar algunos ejemplos con la base de datos neptuno…

Por ejemplo tomemos la tabla productos para hacer búsquedas por rangos de precios…

Buscar todos los productos con precios comprendidos entre 10 y 15

SELECT NombreProducto, PrecioUnidad, UnidadesEnExistencia FROM producto WHERE PrecioUnidad BETWEEN 10 AND 15

Producto Precio Existencias
Sirope de regaliz 10 13
Bollos de Sir Rodney’s 10 3
Crema de chocolate y nueces NuNuCa 14 76
Queso gorgonzola Telino 12.5 0
Cerveza Sasquatch 14 111
Tallarines de Singapur 14 26
Arenque salado 12 95
Chocolate holandés 12.75 15
Caracoles de Borgoña 13.25 62
Cerveza Laughing Lumberjack 14 52
Barras de pan de Escocia 12.5 6
Cerveza Outback 15 15
Caviar rojo 15 101
Queso de soja Longlife 10 4
Salsa verde original Frankfurter 13 32

Ahora utilizando NOT BETWEEN vamos a hacer la misma consulta

SELECT NombreProducto, PrecioUnidad, UnidadesEnExistencia FROM producto WHERE PrecioUnidad  NOT BETWEEN 10 AND 15

Producto Precio Existencias
Té Dharamsala 18 39
Cerveza tibetana Barley 19 17
Especias Cajun del chef Anton 22 53
Mezcla Gumbo del chef Anton 21.35 0
Mermelada de grosellas de la abuela 25 120
Peras secas orgánicas del tío Bob 30 15
Salsa de arándanos Northwoods 40 6
Buey Mishi Kobe 97 29
Pez espada 31 31
Queso Cabrales 21 22
Queso Manchego La Pastora 38 86
Algas Konbu 6 24
Cuajada de judías 23.25 35
Salsa de soja baja en sodio 15.5 39
Postre de merengue Pavlova 17.45 29
Cordero Alice Springs 39 0
Langostinos tigre Carnarvon 62.5 42
Pastas de té de chocolate 9.2 25
Mermelada de Sir Rodney’s 81 40
Pan de centeno crujiente estilo Gustaf’s 21 104
Pan fino 9 61
Refresco Guaraná Fantástica 4.5 20
Ositos de goma Gumbär 31.23 15
Chocolate Schoggi 43.9 49
Col fermentada Rössle 45.6 26
Salchicha Thüringer 123.79 0
Arenque blanco del noroeste 25.89 10
Queso Mascarpone Fabioli 32 9
Queso de cabra 2.5 112
Cerveza negra Steeleye 18 20
Escabeche de arenque 19 112
Salmón ahumado Gravad 26 11
Vino Côte de Blaye 263.5 17
Licor verde Chartreuse 18 69
Carne de cangrejo de Boston 18.4 123
Crema de almejas estilo Nueva Inglaterra 9.65 85
Café de Malasia 46 17
Azúcar negra Malacca 19.45 27
Arenque ahumado 9.5 5
Galletas Zaanse 9.5 36
Regaliz 20 10
Chocolate blanco 16.25 65
Manzanas secas Manjimup 53 20
Cereales para Filo 7 38
Empanada de carne 32.8 0
Empanada de cerdo 7.45 21
Paté chino 24 115
Gnocchi de la abuela Alicia 38 21
Raviolis Angelo 19.5 36
Raclet de queso Courdavault 55 79
Camembert Pierrot 34 19
Sirope de arce 28.5 113
Tarta de azúcar 49.3 17
Sandwich de vegetales 43.9 24
Bollos de pan de Wimmer 33.25 22
Salsa de pimiento picante de Luisiana 21.05 76
Especias picantes de Luisiana 17 4
Queso Gudbrandsdals 36 26
Crema de queso Fløtemys 21.5 26
Queso Mozzarella Giovanni 34.8 14
Cerveza Klosterbier Rhönbräu 7.75 125
Licor Cloudberry 18 57

Como ya hemos dicho algunas veces lo interesante de las consultas es poder mezclar operadores y condiciones, de hecho vamos a suponer que queremos limitar aun más nuestra búsqueda, por ejemplo si queremos que ademas del precio el producto pertenezca a determinadas categorias:

SELECT NombreProducto, PrecioUnidad, UnidadesEnExistencia, IdCategoria FROM producto WHERE (PrecioUnidad BETWEEN 10 AND 15) AND IdCategoria IN (1,2,3)

Que nos daría como resultado:

Producto Precio Existencias IdCategoria
Sirope de regaliz 10 13 2
Bollos de Sir Rodney’s 10 3 3
Crema de chocolate y nueces NuNuCa 14 76 3
Cerveza Sasquatch 14 111 1
Chocolate holandés 12.75 15 3
Cerveza Laughing Lumberjack 14 52 1
Barras de pan de Escocia 12.5 6 3
Cerveza Outback 15 15 1
Salsa verde original Frankfurter 13 32 2

Naturalmente y como de costumbre hay que decir que cuando se trata de cadenas y no de valores, los términos limitantes del BETWEEN deben de ir entre comillas simples ‘cadena’.