Microsoft SQL Server
Unterabfragen
Suche…
Unterabfragen
Eine Unterabfrage ist eine Abfrage in einer anderen SQL-Abfrage. Eine Unterabfrage wird auch als innere Abfrage oder innere Auswahl bezeichnet. Die Anweisung, die eine Unterabfrage enthält, wird als äußere Abfrage oder äußere Auswahl bezeichnet.
Hinweis
- Unterabfragen müssen in Klammern stehen.
- Ein ORDER BY kann nicht in einer Unterabfrage verwendet werden.
- Der Bildtyp wie BLOB, Array, Textdatentypen ist in Unterabfragen nicht zulässig.
Unterabfragen können mit select-, insert-, update- und delete-Anweisungen verwendet werden, in denen die select-Klausel zusammen mit IN, Vergleichsoperatoren usw. enthalten ist.
Wir haben eine Tabelle namens ITCompanyInNepal, in der Abfragen ausgeführt werden, um Beispiele für Unterabfragen anzuzeigen:
Beispiele: SubQueries mit Select-Anweisung
mit In Operator und Where- Klausel:
SELECT *
FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA');
mit Vergleichsoperator und Where- Klausel
SELECT *
FROM ITCompanyInNepal
WHERE NumberOfEmployee < (SELECT AVG(NumberOfEmployee)
FROM ITCompanyInNepal
)
mit Select- Klausel
SELECT CompanyName,
CompanyAddress,
Headquarter,
(Select SUM(NumberOfEmployee)
FROM ITCompanyInNepal
Where Headquarter = 'USA') AS TotalEmployeeHiredByUSAInKathmandu
FROM ITCompanyInNepal
WHERE CompanyAddress = 'Kathmandu' AND Headquarter = 'USA'
Unterabfragen mit insert-Anweisung
Wir müssen Daten aus der IndianCompany-Tabelle in ITCompanyInNepal einfügen. Die Tabelle für IndianCompany wird unten gezeigt:
INSERT INTO ITCompanyInNepal
SELECT *
FROM IndianCompany
Unterabfragen mit Update-Anweisung
Angenommen, alle Unternehmen mit Hauptsitz in den USA haben sich entschlossen, 50 Angestellte aller US-amerikanischen Unternehmen in Nepal zu entlassen, weil sich die Politik der US-Unternehmen geändert hat.
UPDATE ITCompanyInNepal
SET NumberOfEmployee = NumberOfEmployee - 50
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA')
Unterabfragen mit Delete-Anweisung
Angenommen, alle Unternehmen mit Hauptsitz in Dänemark haben beschlossen, ihre Unternehmen aus Nepal zu schließen.
DELETE FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'Denmark')