InList wird in Fällen verwendet, bei denen ein IN-Listenprädikat unter Verwendung eines Index erfüllt werden kann. In der folgenden Abfrage erkennt der Optimierer beispielsweise, dass er auf die Tabelle "Employees" mit ihrem Primärschlüsselindex zugreifen kann.
SELECT * FROM Employees WHERE EmployeeID IN ( 102, 105, 129 ); |
Um dies zu erreichen, wird ein Join mit einer speziellen IN-Listentabelle auf der linken Seite erstellt. Aus der IN-Listentabelle werden Zeilen abgerufen und zur Untersuchung der Tabelle "Employees" verwendet.
Um InList zu verwenden, muss jedes Element im IN-Listenprädikat eine Konstante oder ein Wert sein, der während der Optimierungszeit in einen Konstantenwert berechnet werden kann (wie CURRENT DATE, CURRENT TIMESTAMP und nicht-deterministische System- bzw. benutzerdefinierte Funktionen), oder ein Wert, der eine Konstante innerhalb einer Ausführung eines Abfrageblocks ist (äußere Referenzen). Beispiel: Die folgende Abfrage ist für InList qualifiziert.
SELECT *, ( SELECT FIRST GivenName FROM Employees e WHERE e.DepartmentID IN ( 500, d.DepartmentID ) ORDER BY e.DepartmentID ) FROM Departments d; |
Mehreren IN-Listenprädikaten kann mit demselben Index entsprochen werden.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |