sql >> Databasteknik >  >> RDS >> Database

SQL INTERSECT

SQL intersect-operator används för att kombinera två eller flera SELECT-satser, men den visar bara data som liknar SELECT-satsen.

Syntaxen för INTERSECT-operationen:

SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME1 INTERSECT SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME2;

Regler som ska följas med INTERSECT-operatorn är följande:

  1. Antalet kolumner och ordningen på kolumner måste vara samma.
  2. Datatypen måste vara kompatibel.

Låt oss förstå begreppet SQL INTERSECT med hjälp av exempel.

Betrakta följande tabeller tillsammans med de givna posterna.

Tabell 1:Student

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

Tabell 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

Exempel 1: Kör en fråga för att utföra INTERSECT-operationen mellan Student-tabellen och Stud-tabellen.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD;

I ovanstående fråga har vi använt två SELECT-frågor. Den första SELECT-frågan hämtar data från elevtabellen. Den utför INTERSECT-operationen med data som hämtas av den andra SELECT-frågan som hämtar data från Stud-tabellen. Endast liknande poster mellan dessa två tabeller väljs.

Utdata från ovanstående fråga är:

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

Endast vanliga poster mellan Studenttabellen och Stud-tabellerna visas.

Exempel 2: Kör en fråga för att utföra INTERSECT-operationen mellan Student-tabellen och Stud-tabellen men visa endast de Student-poster från Stud-tabellen där matematiska poäng är lika med 100.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS = 100;

Utdata från ovanstående fråga är:

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

Endast de elevers poster visas vars matematiska poäng är lika med 100 från Stud-tabellen och är gemensamma mellan både Student- och Stud-tabellen.

Exempel 3: Kör en fråga för att utföra INTERSECT-operationen mellan Student-tabellen och Stud-tabellen, men visa endast de Student-poster från Student-tabellen där kemibetygen är större än 80.

SELECT * FROM STUDENT WHERE CHEMISTRY_MARKS > 80 INTERSECT SELECT * FROM STUD;

Utdata från ovanstående fråga är:

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

Endast de elevers poster visas vars kemibetyg är större än 80 från Studenttabellen och är gemensamma mellan både Student- och Stud-tabellen.

Exempel 4: Kör en fråga för att utföra INTERSECT-operation mellan Student-tabellen och Stud-tabellen och visa endast de Student-poster där fysikbetygen är större än 75 från Student-tabellen, och välj sedan frågor som endast visar de Student-poster där matematikbetygen är större än 90 från Stud.

SELECT * FROM STUDENT WHERE PHYSICS_MARKS > 75 INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS > 90;

Utdata från ovanstående fråga är:

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

Endast de elevers poster visas vars fysikbetyg är större än 75 från elevtabellen, och matematikbetyg är större än 90 från studtabellen och är vanliga mellan både elev- och studtabellen.


  1. Kopiera data från Salesforce till SQL Server med Spectral Core

  2. SQLite JSON_SET()

  3. Hur släpper man en tabell om den finns?

  4. Skickar param till DB .execute för WHERE IN... INT-listan