Resumen: en este tutorial, aprenderá a usar el operador BETWEEN de SQL Server para especificar un rango para probar.
Introducción general del operador BETWEEN de SQL Server
La sentencia u operador BETWEEN de SQL te permite probar fácilmente si una expresión está dentro de un rango de valores. Los valores pueden ser texto, fechas o números. Se puede usar en una instrucción SELECT, INSERT, UPDATE o DELETE. La condición BETWEEN de SQL devolverá los registros donde la expresión está dentro del rango de valor1 y valor2 y se utiliza en la cláusula WHERE.
Sintaxis de SQL BETWEEN
SELECT columna1
FROM tabla
WHERE columna1 BETWEEN valor1 AND valor2;
En esta sintaxis:
- Primero, especificas la columna o expresión a probar.
- En segundo lugar, debes colocar valor1 y valor2 entre las palabras clave BETWEEN y AND. valor1, valor2 y la columna1 a probar deben tener el mismo tipo de datos.
El operador BETWEEN devuelve TRUE si la expresión a probar es mayor o igual que el valor de valor1 y menor o igual que el valor de valor2.
Ejemplos
Considera la siguiente tabla de Employees, la cual forma parte de la base de datos Northwind que hemos estado utilizando y la puedes descargar en esta liga.
select EmployeeID, LastName, FirstName, Title, BirthDate, ReportsTo from Employees
EmployeeID | LastName | FirstName | Title | BirthDate | ReportsTo |
---|---|---|---|---|---|
1 | Davolio | Nancy | Sales Representative | 1948-12-08T00:00:00 | 2 |
2 | Fuller | Andrew | Vice President, Sales | 1952-02-19T00:00:00 | 0 |
3 | Leverling | Janet | Sales Representative | 1963-08-30T00:00:00 | 2 |
4 | Peacock | Margaret | Sales Representative | 1937-09-19T00:00:00 | 2 |
5 | Buchanan | Steven | Sales Manager | 1955-03-04T00:00:00 | 2 |
6 | Suyama | Michael | Sales Representative | 1963-07-02T00:00:00 | 5 |
7 | King | Robert | Sales Representative | 1960-05-29T00:00:00 | 5 |
8 | Callahan | Laura | Inside Sales Coordinator | 1958-01-09T00:00:00 | 2 |
9 | Dodsworth | Anne | Sales Representative | 1966-01-27T00:00:00 | 5 |
Uso del BETWEEN con valores numéricos
Obtendremos una lista de todos los empleados EmployeeID, LastName, FirstName, Title, BirthDate, ReportsT que tiene un valor en ReportsT entre 3 y 8.
select EmployeeID, LastName, FirstName, Title, BirthDate, ReportsTo from Employees
where ReportsTo BETWEEN 3 and 8
EmployeeID | LastName | FirstName | Title | BirthDate | ReportsTo |
---|---|---|---|---|---|
6 | Suyama | Michael | Sales Representative | 1963-07-02T00:00:00 | 5 |
7 | King | Robert | Sales Representative | 1960-05-29T00:00:00 | 5 |
9 | Dodsworth | Anne | Sales Representative | 1966-01-27T00:00:00 | 5 |
Usando BETWEEN con campos tipo fecha
Encuentre a todos los empleados que tengan fecha de nacimiento entre el 01-01-1920 y el 12-12-1950.
select EmployeeID, LastName, FirstName, Title, BirthDate, ReportsTo from Employees
where BirthDate BETWEEN '01-01-1920' and '12-12-1960'
EmployeeID | LastName | FirstName | Title | BirthDate | ReportsTo |
---|---|---|---|---|---|
1 | Davolio | Nancy | Sales Representative | 1948-12-08T00:00:00 | 2 |
2 | Fuller | Andrew | Vice President, Sales | 1952-02-19T00:00:00 | 0 |
4 | Peacock | Margaret | Sales Representative | 1937-09-19T00:00:00 | 2 |
5 | Buchanan | Steven | Sales Manager | 1955-03-04T00:00:00 | 2 |
7 | King | Robert | Sales Representative | 1960-05-29T00:00:00 | 5 |
8 | Callahan | Laura | Inside Sales Coordinator | 1958-01-09T00:00:00 | 2 |
Usando el operador NOT con BETWEEN
Encuentre todos los empleados cuyo ID no esté en el rango de 5 y 50.
select EmployeeID, LastName, FirstName, Title, BirthDate, ReportsTo from Employees
where EmployeeID BETWEEN 5 and 50
EmployeeID | LastName | FirstName | Title | BirthDate | ReportsTo |
---|---|---|---|---|---|
5 | Buchanan | Steven | Sales Manager | 1955-03-04T00:00:00 | 2 |
6 | Suyama | Michael | Sales Representative | 1963-07-02T00:00:00 | 5 |
7 | King | Robert | Sales Representative | 1960-05-29T00:00:00 | 5 |
8 | Callahan | Laura | Inside Sales Coordinator | 1958-01-09T00:00:00 | 2 |
9 | Dodsworth | Anne | Sales Representative | 1966-01-27T00:00:00 | 5 |
Enviame tus comentarios y observaciones si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado en este artículo.