Podkwerendy SQL

Uwaga: Staramy się udostępniać najnowszą zawartość Pomocy w Twoim języku tak szybko, jak to możliwe. Ta strona została przetłumaczona automatycznie i może zawierać błędy gramatyczne lub nieścisłości. Chcemy, aby ta zawartość była dla Ciebie przydatna. Prosimy o powiadomienie nas, czy te informacje były pomocne, u dołu tej strony. Oto angielskojęzyczny artykuł do wglądu.

Podkwerenda to instrukcja SELECT zagnieżdżona SELECT, SELECT... WSTAW... Instrukcja INTO, usuń lub AKTUALIZUJ lub wewnątrz innej podkwerendy.

Składnia

Za pomocą trzech rodzajów składni w celu utworzenia podkwerendy:

Porównanie [DOWOLNY | WSZYSTKIE | Niektóre] (sqlstatement)

wyrażenie [NOT] W (sqlstatement)

[NOT] ISTNIEJE (sqlstatement)

Podkwerendy zawiera następujące segmenty:

Segment

Opis

Porównanie

wyrażenie i operator porównania, który porównuje wyrażenie z wynikiem podkwerendy.

wyrażenie

Wyrażenie, dla którego jest przeszukiwana w zestawie wyników podkwerendy.

instrukcja_sql

Instrukcja SELECT, zgodnie z takim samym formatem i reguły jako innych instrukcji SELECT. Muszą być ujęte w nawiasy.


Uwagi

Podkwerendy można użyć zamiast wyrażenia na liście pól instrukcji SELECT lub w klauzuli WHERE lub HAVING. W podkwerendy umożliwia instrukcji SELECT zawierają zestaw jeden lub więcej określonych obliczonych wartości w klauzuli WHERE lub wyrażenie w klauzuli HAVING.

Orzeczenie ANY i SOME, które są synonimy, aby pobrać rekordy przy użyciu głównej kwerendy, które spełniają kryteria porównania ze wszystkimi rekordami pobranymi przy użyciu podkwerendy. W poniższym przykładzie zwracany wszystkie produkty, których cena jednostkowa jest większa niż dowolny produkt sprzedanych rabat 25% lub więcej:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

Użyj predykacie wszystkie, aby pobrać tylko te rekordy przy użyciu głównej kwerendy, które spełniają kryteria porównania ze wszystkimi rekordami pobranymi przy użyciu podkwerendy. Jeśli zmienisz DOWOLNE wszystkim w poprzednim przykładzie, kwerenda zwróci tylko tych produktów, w których cena jednostkowa jest większa niż wszystkich produktów sprzedanych rabat 25% lub więcej. Jest to bardziej restrykcyjnie.

Użyj predykacie w, aby pobrać tylko te rekordy przy użyciu głównej kwerendy, dla których pewien rekord w podkwerendę zawiera taką samą wartość. W poniższym przykładzie zwracany wszystkie produkty z rabatem 25% lub więcej:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

I odwrotnie NOT IN umożliwia pobieranie tylko te rekordy przy użyciu głównej kwerendy, dla których żaden z rekordów w podkwerendę zawiera taką samą wartość.

Orzeczenie EXISTS (z opcjonalne nie zastrzeżone program word) w porównaniach ciągów PRAWDA i FAŁSZ, aby określić, czy podkwerendę zwraca wszystkie rekordy.

Można także użyć aliasów nazwy tabel w podkwerendy odwołanie do tabel wymienionych w klauzuli FROM poza podkwerendę. W poniższym przykładzie zwracany imiona i nazwiska pracowników, których zarobki są równe lub większe niż średnie wynagrodzenie wszystkich pracowników o tym samym tytule zadania. Tabela Pracownicy, wyznaczona alias "T1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

W powyższym przykładzie, jako słowo zastrzeżone jest opcjonalna.

Niektóre podkwerendy mogą być używane w kwerend krzyżowych — w szczególności jako orzeczenia (znajdującymi się w klauzuli WHERE). Podkwerendy jako danych wyjściowych (na liście instrukcji SELECT) nie są dozwolone w kwerend krzyżowych.



Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×