SQL intersect-operator bruges til at kombinere to eller flere SELECT-sætninger, men den viser kun data, der ligner SELECT-sætningen.
Syntaksen for INTERSECT-operationen:
SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME1 INTERSECT SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME2;
Regler, der skal følges ved brug af INTERSECT-operatoren, er som følger:
- Antallet af kolonner og rækkefølgen af kolonner skal være det samme.
- Datatypen skal være kompatibel.
Lad os forstå begrebet SQL INTERSECT ved hjælp af eksempler.
Overvej følgende tabeller sammen med de givne poster.
Tabel 1:Elev
| STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
| 1 | NEHA | 85 | 88 | 100 | 273 |
| 2 | VISHAL | 70 | 90 | 82 | 242 |
| 3 | SAMKEET | 75 | 88 | 96 | 259 |
| 4 | NIKHIL | 60 | 75 | 80 | 215 |
| 5 | YOGESH | 56 | 65 | 78 | 199 |
| 6 | ANKITA | 95 | 85 | 96 | 276 |
| 7 | SONAM | 98 | 89 | 100 | 287 |
| 8 | VINEET | 85 | 90 | 100 | 275 |
| 9 | SANKET | 86 | 78 | 65 | 229 |
| 10 | PRACHI | 90 | 80 | 75 | 245 |
| 101 | SNEHA | 85 | 88 | 100 | 273 |
| 103 | VISHAL | 75 | 88 | 96 | 259 |
Tabel 2:Stud
| STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
| 4 | NIKHIL | 60 | 75 | 80 | 215 |
| 6 | ANKITA | 95 | 85 | 96 | 276 |
| 7 | SONAM | 98 | 89 | 100 | 287 |
| 9 | SANKET | 86 | 78 | 65 | 229 |
| 101 | SNEHA | 85 | 88 | 100 | 273 |
| 102 | SAMKEET | 70 | 90 | 82 | 242 |
| 103 | VISHAL | 75 | 88 | 96 | 259 |
| 105 | YOGESHWARI | 56 | 65 | 78 | 199 |
| 106 | VINAY | 85 | 90 | 100 | 275 |
| 107 | PRASHAKA | 90 | 80 | 75 | 245 |
| 8 | VINEET | 85 | 90 | 100 | 275 |
Eksempel 1: Udfør en forespørgsel for at udføre INTERSECT-operation mellem Student-tabel og Stud-tabel.
SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD;
I ovenstående forespørgsel har vi brugt to SELECT-forespørgsler. Den første SELECT-forespørgsel henter dataene fra elevtabellen. Den udfører INTERSECT-operation med dataene hentet af den anden SELECT-forespørgsel, der henter dataene fra Stud-tabellen. Kun lignende poster mellem disse to tabeller er valgt.
Outputtet fra ovenstående forespørgsel er:
| STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
| 4 | NIKHIL | 60 | 75 | 80 | 215 |
| 6 | ANKITA | 95 | 85 | 96 | 276 |
| 7 | SONAM | 98 | 89 | 100 | 287 |
| 8 | VINEET | 85 | 90 | 100 | 275 |
| 9 | SANKET | 86 | 78 | 65 | 229 |
| 101 | SNEHA | 85 | 88 | 100 | 273 |
| 103 | VISHAL | 75 | 88 | 96 | 259 |
Kun almindelige poster mellem Elev-tabellen og Stud-tabellerne vises.
Eksempel 2: Udfør en forespørgsel for at udføre INTERSECT-operation mellem Student-tabellen og Stud-tabellen, men vis kun de Student-poster fra Stud-tabellen, hvor matematiske karakterer er lig med 100.
SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS = 100;
Outputtet fra ovenstående forespørgsel er:
| STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
| 7 | SONAM | 98 | 89 | 100 | 287 |
| 8 | VINEET | 85 | 90 | 100 | 275 |
| 101 | SNEHA | 85 | 88 | 100 | 273 |
Kun de elevers poster vises, hvis matematiske karakterer er lig med 100 fra Stud-tabellen og er fælles for både Elev- og Stud-tabellen.
Eksempel 3: Udfør en forespørgsel for at udføre INTERSECT-operation mellem Student-tabellen og Stud-tabellen, men vis kun de Student-poster fra Elev-tabellen, hvor kemimærkerne er større end 80.
SELECT * FROM STUDENT WHERE CHEMISTRY_MARKS > 80 INTERSECT SELECT * FROM STUD;
Outputtet fra ovenstående forespørgsel er:
| STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
| 6 | ANKITA | 95 | 85 | 96 | 276 |
| 7 | SONAM | 98 | 89 | 100 | 287 |
| 8 | VINEET | 85 | 90 | 100 | 275 |
| 101 | SNEHA | 85 | 88 | 100 | 273 |
| 103 | VISHAL | 75 | 88 | 96 | 259 |
Kun de studerendes poster vises, hvis kemikarakterer er større end 80 fra elevtabellen og er fælles for både elev- og Stud-tabellen.
Eksempel 4: Udfør en forespørgsel for at udføre INTERSECT-operation mellem Student-tabel og Stud-tabel og vis kun de Student-poster, hvor fysikkarakterer er større end 75 fra Elev-tabellen, og vælg derefter forespørgsler, der kun viser de Student-poster, hvor matematikkarakterer er større end 90 fra Stud.
SELECT * FROM STUDENT WHERE PHYSICS_MARKS > 75 INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS > 90;
Outputtet fra ovenstående forespørgsel er:
| STUDENT_ID | STUDENT_NAME | PHYSICS_MARKS | CHEMISTRY_MARKS | MATHS_MARKS | TOTAL_MARKS |
| 6 | ANKITA | 95 | 85 | 96 | 276 |
| 7 | SONAM | 98 | 89 | 100 | 287 |
| 8 | VINEET | 85 | 90 | 100 | 275 |
| 101 | SNEHA | 85 | 88 | 100 | 273 |
Kun de elevers poster vises, hvis fysikkarakterer er større end 75 fra elevtabellen, og matematikkarakterer er større end 90 fra Stud-tabellen og er fælles for både Elev- og Stud-tabellen.