Tabellenschätzungsfunktionen sind eine Art von Funktionen im SQL -Server, der Daten als Tabellen zurückgibt. Wenn Sie sich an SQL Server ausführen, können Sie Zeilen aus zwei oder mehr Datenbanktabellen beitreten. Die Möglichkeit, eine Tabelle mit einer Ausgabe einer Tabelle bewertete Funktion zu verbinden, wird jedoch nicht unterstützt, es sei denn.
SQL Server unterstützt zwei Anwendungsbetreiber:
Cross Apply ist semantisch sehr ähnlich wie bei einem SQL -Server -inneren Join. Dies bedeutet, dass es die Zeilen einer Tabelle bewertete Funktion und die der Tabelle abruft, um nur zu verbinden, wo es Übereinstimmungen zwischen den beiden Tabellen gibt.
Outer Apply wird den Aufzeichnungen einer Tabelle bewertet, und die definierte Tabelle unabhängig von den passenden Zeilen.
Um besser zu verstehen, wie man Cross und Outer anwenden Operatoren in SQL Server verwendet, lassen Sie uns einen praktischen Ansatz verfolgen.
Erstellen Sie zunächst eine Testdatenbank:
Datenbank erstellen applydb;Wechseln Sie zur Datenbank erstellen:
Verwenden Sie ApplyDB;Erstellen Sie als nächstes Tabellen und fügen Sie Beispieldaten wie gezeigt ein:
CreatTableuserDas Beispiel -Query -Skript erstellt zwei Tabellen: Benutzer und Beiträge. Die Post-Tabelle enthält eine user_id-Spalte, die die Werte aus der Tabelle der Benutzer enthält, die Eins-zu-Viele-Beziehungen in der Datenbank ermöglichen.
SQL Server Cross anwenden
Versuchen wir einen inneren Zusammenschluss mit einer Tabelle mit einem Tisch als:
createFunction getPostsbyId (@id int)SQL Server gibt einen Fehler als:
Um dies zu lösen, können wir Cross Apply verwenden wie:
Wählen Sie u.Benutzername, p.id, p.post_name, p.pub_dateDie obige Abfrage sollte erfolgreich ausgeführt und das Ergebnis zurückgegeben werden wie:
SQL Server Outer Bewerben
Wir können die Zeilen aus der physischen und der Tabelle bewertete Funktion unter Verwendung des äußeren Antrags wie gezeigt abrufen:
Wählen Sie u.Benutzername, p.id, p.post_name, p.pub_dateDer resultierende Abfragesatz ist wie gezeigt:
Abschluss
Dieser Artikel behandelt, wie man mit SQL Server Outer und Cross Apply -Operatoren arbeitet, um einer physischen Tabelle und einer Tabelle wertvolle Funktion zu verbinden.