90 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: SQL Between Operator
 | |
| ---
 | |
| ## SQL Between Operator
 | |
| 
 | |
| The BETWEEN Operator is useful because of the SQL Query Optimizer. Although BETWEEN is functionally the same as:
 | |
| x <= element <= y, the SQL Query Optimizer will recognize this command faster, and has optimized code for running it.
 | |
| 
 | |
| This operator is used in a WHERE clause or in a GROUP BY HAVING clause.
 | |
| 
 | |
| Rows are selected that have a value greater than or equal to the minimum value and less than or equal to the maximum value.  
 | |
| 
 | |
| It's important to keep in mind that the values entered in the command are **included** in the result.
 | |
| 
 | |
| Here is the syntax for using the function in a WHERE Clause:
 | |
| 
 | |
| ```sql
 | |
| select field1, testField
 | |
| from table1
 | |
| where testField between min and max
 | |
| ```
 | |
| 
 | |
| * Here is an example using the student table and the WHERE clause:
 | |
|  
 | |
|   ```sql
 | |
|   -- no WHERE clause
 | |
|   select studentID, FullName, studentID
 | |
|   from student;
 | |
|   ```
 | |
|   Result : 
 | |
|   ```text
 | |
|   +-----------+------------------+-----------+
 | |
|   | studentID | FullName         | studentID |
 | |
|   +-----------+------------------+-----------+
 | |
|   |         1 | Monique Davis    | 1         |
 | |
|   |         2 | Teri Gutierrez   | 2         |
 | |
|   |         3 | Spencer Pautier  | 3         |     
 | |
|   |         4 | Louis Ramsey     | 4         |      
 | |
|   |         5 | Alvin Greene     | 5         |     
 | |
|   |         6 | Sophie Freeman   | 6         |      
 | |
|   |         7 | Maximo Smith     | 7         |  
 | |
|   +-----------+------------------+-----------+
 | |
|   ``` 
 | |
|   ```sql  
 | |
|   -- WHERE clause with between
 | |
|   select studentID, FullName, studentID
 | |
|   from student
 | |
|   where studentID between 2 and 7;
 | |
|   ```
 | |
|   Result : 
 | |
|   ```text
 | |
|   +-----------+------------------+-----------+
 | |
|   | studentID | FullName         | studentID |
 | |
|   +-----------+------------------+-----------+
 | |
|   |         2 | Teri Gutierrez   | 2         |
 | |
|   |         3 | Spencer Pautier  | 3         |     
 | |
|   |         4 | Louis Ramsey     | 4         |      
 | |
|   |         5 | Alvin Greene     | 5         |     
 | |
|   |         6 | Sophie Freeman   | 6         |      
 | |
|   |         7 | Maximo Smith     | 7         |  
 | |
|   +-----------+------------------+-----------+
 | |
|   ``` 
 | |
| 
 | |
| * Here is an example using the campaign funds table and the having clause :
 | |
|    This will return rows where the sum of the donations for a candidate are between $3 Million and $18 Million based on the HAVING clause in the GROUP BY part of the statement.  More on aggregation in that guide.
 | |
| 
 | |
| 
 | |
|   ```sql
 | |
|   select Candidate, Office_Sought, Election_Year, format(sum(Total_$),2)
 | |
|   from combined_party_data
 | |
|   where Election_Year = 2016
 | |
|   group by Candidate, Office_Sought, Election_Year
 | |
|   having sum(Total_$) between 3000000 and 18000000
 | |
|   order by sum(Total_$) desc; 
 | |
|   ```
 | |
|   Result :
 | |
|   ```text
 | |
|   +---------------------------------+----------------------------+---------------+------------------------+
 | |
|   | Candidate                       | office_Sought              | Election_Year | format(sum(Total_$),2) |
 | |
|   +---------------------------------+----------------------------+---------------+------------------------+
 | |
|   | FLORINA. CARLY                  | PRESIDENT / VICE PRESIDENT | 2016          | 11,937,638.11          |
 | |
|   | PAUL. RANDAL (RAND)             | PRESIDENT / VICE PRESIDENT | 2016          | 11,833,950.07          |
 | |
|   | CHRISTIE. CHRISTOPHER J (CHRIS) | PRESIDENT / VICE PRESIDENT | 2016          | 8,450,767.64           |
 | |
|   | WALKER. SCOTT K                 | PRESIDENT / VICE PRESIDENT | 2016          | 8,067,461.71           |
 | |
|   | GRAHAM. LINDSEY OLIN            | PRESIDENT / VICE PRESIDENT | 2016          | 7,292,173.80           |
 | |
|   | OMALLEY. MARTIN JOSEPH          | PRESIDENT / VICE PRESIDENT | 2016          | 5,669,814.82           |
 | |
|   | HUCKABEE. MIKE D                | PRESIDENT / VICE PRESIDENT | 2016          | 3,064,303.84           |
 | |
|   +---------------------------------+----------------------------+---------------+------------------------+
 | |
|   ```
 |