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 operatorEXISTS
ocenia 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.