87 lines
4.2 KiB
Markdown
87 lines
4.2 KiB
Markdown
---
|
|
title: SQL AND Operator
|
|
---
|
|
|
|
## SQL AND operator
|
|
AND is used in a WHERE clause or a GROUP BY HAVING clause to limit the rows returned from the executed statement. Use AND when it's required to have more than one condition met.
|
|
|
|
We'll use the student table to present examples.
|
|
|
|
* Here's the student table without a WHERE clause:
|
|
```sql
|
|
select * from student;
|
|
```
|
|
Result :
|
|
```text
|
|
+-----------+------------------+----------------+-----------+
|
|
| studentID | FullName | programOfStudy | sat_score |
|
|
+-----------+------------------+----------------+-----------+
|
|
| 1 | Monique Davis | Literature | 400 |
|
|
| 2 | Teri Gutierrez | Programming | 800 |
|
|
| 3 | Spencer Pautier | Programming | 1000 |
|
|
| 4 | Louis Ramsey | Programming | 1200 |
|
|
| 5 | Alvin Greene | Photography | 1400 |
|
|
| 6 | Sophie Freeman | Photography | 1600 |
|
|
| 7 | Maximo Smith | Photography | 1800 |
|
|
| 8 | Michael Roach | Literature | 800 |
|
|
+-----------+------------------+----------------+-----------+
|
|
```
|
|
|
|
* Now the WHERE clause is added to display only programming students:
|
|
|
|
```sql
|
|
select * from student
|
|
where programOfStudy = 'Programming';
|
|
```
|
|
Result :
|
|
```text
|
|
+-----------+------------------+----------------+-----------+
|
|
| studentID | FullName | programOfStudy | sat_score |
|
|
+-----------+------------------+----------------+-----------+
|
|
| 2 | Teri Gutierrez | Programming | 800 |
|
|
| 3 | Spencer Pautier | Programming | 1000 |
|
|
| 4 | Louis Ramsey | Programming | 1200 |
|
|
+-----------+------------------+----------------+-----------+
|
|
```
|
|
|
|
* Now the WHERE clause is updated with AND to show results for programming students that also have a SAT score greater than 800:
|
|
|
|
```sql
|
|
select * from student
|
|
where programOfStudy = 'Programming'
|
|
and sat_score > 800;
|
|
```
|
|
Result :
|
|
```text
|
|
+-----------+------------------+----------------+-----------+
|
|
| studentID | FullName | programOfStudy | sat_score |
|
|
+-----------+------------------+----------------+-----------+
|
|
| 3 | Spencer Pautier | Programming | 1000 |
|
|
| 4 | Louis Ramsey | Programming | 1200 |
|
|
+-----------+------------------+----------------+-----------+
|
|
```
|
|
|
|
* This is a more complex example from the campaign contributions table. This example has a GROUP BY clause with a HAVING clause using an AND to restrict the returned records to candidates from 2016 with contributions between $3 Million and $18 Million in total.
|
|
```sql
|
|
select Candidate, Office_Sought, Election_Year, FORMAT(sum(Total_$),2) from combined_party_data
|
|
where Office_Sought = 'PRESIDENT / VICE PRESIDENT'
|
|
group by Candidate, Office_Sought, Election_Year
|
|
having Election_Year = 2016 and 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 |
|
|
+---------------------------------+----------------------------+---------------+------------------------+
|
|
```
|
|
|