Podsumowanie: w tym samouczku dowiesz się, jak używać operatora SQL Server EXISTS w warunku do testowania istnienia wierszy w zapytaniu podrzędnym.

SQL Server EXISTS operator overview

operatorEXISTS jest operatorem logicznym, który pozwala sprawdzić, czy subquery zwraca dowolny wiersz. OperatorEXISTS zwraca TRUE jeśli zapytanie podrzędne zwraca jeden lub więcej wierszy.,

poniżej przedstawiono składnię serwera SQL EXISTS operator:

Code language: SQL (Structured Query Language) (sql)

w tej składni zapytanie podrzędne jest tylko poleceniem SELECT. Gdy tylko zapytanie podrzędne zwróci wiersze, operator EXISTS zwraca TRUE I natychmiast przerywa przetwarzanie.

zauważ, że nawet jeśli zapytanie podrzędne Zwraca wartośćNULL, operatorEXISTS jest nadal oceniany naTRUE.,

SQL Server istnieje przykłady operatorów

weźmy kilka przykładów, aby zrozumieć, jak działa operatorEXISTS.

A) użycie EXISTS z zapytaniem podrzędnym zwraca NULL przykład

zobacz poniższą tabelę customers z przykładowej bazy danych.,

poniższy przykład zwraca wszystkie wiersze z tabeli customers tabela:

w tym przykładzie zapytanie podrzędne zwróciło zestaw wyników zawierający NULL co powoduje EXISTS operator do oceny do TRUE. Dlatego całe zapytanie zwraca wszystkie wiersze z tabeli customers.,

B) użycie istnieje z skorelowanym przykładem subquery

rozważ następujące customers I orders tabele:

poniższy przykład znajduje wszystkich klientów, którzy złożyli więcej niż dwa zamówienia:

w tym przykładzie mieliśmy skorelowane subquery, które zwraca klientów, którzy składają więcej niż dwa zamówienia.,

Jeśli liczba zamówień złożonych przez Klienta jest mniejsza lub równa dwóm, zapytanie podrzędne zwraca pusty zestaw wyników, który powoduje, że operatorEXISTSocenia doFALSE.

na podstawie wyniku operatora EXISTS, Klient zostanie uwzględniony w zestawie wyników.

C) istnieje vs., W przykładzie

poniższe polecenie używa operatora IN, aby znaleźć zamówienia klientów z San Jose:

poniższe polecenie używa operatora EXISTS, który zwraca ten sam wynik:

istnieje vs.dołączyć

EXISTS operator zwraca TRUE lub FALSE podczas gdy klauzula JOIN zwraca wiersze z innej tabeli.,

używasz operatoraEXISTS, aby sprawdzić, czy zapytanie podrzędne zwraca dowolny wiersz i zwarcie tak szybko, jak to zrobi. Z drugiej strony, używasz JOIN, aby rozszerzyć zestaw wyników, łącząc go z kolumnami z powiązanych tabel.

w praktyce używa się EXISTS, gdy wystarczy sprawdzić istnienie wierszy z powiązanych tabel bez zwracania z nich danych.

w tym samouczku nauczyłeś się używać operatora SQL Server EXISTS do sprawdzania, czy zapytanie podrzędne zwraca wiersze.