Podkwerendy SQL

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

Podkwerenda to instrukcja SELECT zagnieżdżona w instrukcji SELECT, SELECT...INTO, INSERT...INTO, DELETE lub UPDATE albo w innej podkwerendzie.

Składnia

W celu utworzenia podkwerendy można użyć trzech rodzajów składni:

porównanie [ANY | ALL | SOME] (instrukcja_sql)

wyrażenie [NOT] IN (instrukcja_sql)

[NOT] EXISTS (instrukcja_sql)

Podkwerenda składa się z trzech segmentów:

Segment

Opis

porównanie

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

wyrażenie

Wyrażenie, dla którego jest poszukiwany zestaw wyników podkwerendy.

instrukcja_sql

Instrukcja SELECT o takim samym formacie i regułach, jak każda inna instrukcja SELECT. Musi ona być umieszczona w nawiasach.


Spostrzeżenia

Podkwerendy można użyć zamiast wyrażenia w liście pól instrukcji SELECT lub klauzul WHERE i HAVING. W podkwerendzie instrukcja SELECT służy do generowania zbioru konkretnych wartości, które zostaną poddane ocenie w wyrażeniu klauzuli WHERE lub HAVING.

Orzeczenia ANY i SOME, które mają to samo znaczenie, umożliwiają pobranie przy użyciu głównej kwerendy rekordów spełniających kryteria porównania z dowolnymi rekordami pobranymi przy użyciu podkwerendy. W przykładzie poniżej są zwracane wszystkie produkty, których cena jednostkowa jest większa niż cena jakiegokolwiek produktu sprzedawanego z upustem co najmniej 25 procent:

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

Orzeczenie ALL umożliwia pobranie w głównej kwerendzie tylko tych rekordów, które spełniają kryteria porównania ze wszystkimi rekordami pobranymi za pośrednictwem podkwerendy. Jeśli w poprzednim przykładzie orzeczenie ANY zostanie zastąpione orzeczeniem ALL, kwerenda będzie zwracać tylko te produkty, których cena jednostkowa jest większa niż cena wszystkich produktów sprzedawanych z upustem co najmniej 25 procent. Ten wybór jest znacznie bardziej restrykcyjny.

Orzeczenie IN spowoduje pobieranie przy użyciu głównej kwerendy tylko tych rekordów, dla których pewien rekord w podkwerendzie zawiera taką samą wartość. W przykładzie poniżej są zwracane wszystkie produkty z upustem co najmniej 25 procent:

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

Podobnie za pomocą orzeczenia NOT IN w głównej kwerendzie można uwzględnić tylko te rekordy, dla których żaden rekord w podkwerendzie nie zawiera identycznej wartości.

Orzeczenie EXISTS (z opcjonalnym słowem zastrzeżonym NOT) użyte w porównaniach prawda/fałsz pozwala określić, czy kwerenda będzie zwracała jakiekolwiek 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 wyraża się 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 słowo zastrzeżone AS jest opcjonalne.

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.



Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

Rozwijaj swoje umiejętności
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.

×