Inhaltsverzeichnis

Search

  1. Vorwort
  2. Einführung in SQL-Datendienste
  3. Virtuelle Daten
  4. SQL-Syntax
  5. Installieren und Konfigurieren von Treibern für Clients von Drittanbietern
  6. Konfiguration von Fremdanbieter-Client-Tools
  7. Installieren und Konfigurieren von Treibern für PowerCenter
  8. Verwaltung von SQL-Datendienst

SQL-Datendienst Leitfaden

SQL-Datendienst Leitfaden

Anforderungen für korrelierte Unterabfragen

Anforderungen für korrelierte Unterabfragen

Der Datenintegrationsdienst glättet die korrelierten Unterabfragen in ein normales Join, bevor es die Abfrage ausführt. Wenn der Datenintegrationsdienst eine korrelierte Abfrage nicht in einen normalen Join glätten kann, generiert der Datenintegrationsdienst einen Systemfehler und führt die Abfrage nicht aus.
Die folgende Tabelle zeigt die Ergebnisse einer korrelierten Abfrage, die vom Datenintegrationsdienst geglättet wurde:
Typ
Abfrage
Nicht geglättet
SELECT huge.* FROM huge WHERE c1 IN (SELECT c1 FROM tiny)
Geglättet
SELECT huge.* FROM huge, tiny WHERE huge.c1 = tiny.c1
Der Datenintegrationsdienst kann eine korrelierte Unterabfrage in eine normale Verbindung glätten, wenn sie die folgenden Anforderungen erfüllt:
  • Der Typ ist IN oder ein quantifizierter Vergleich.
  • Er ist nicht in einem OR-Operator oder Teil einer SELECT-Liste.
  • Es enthält nicht das LIMIT-Schlüsselwort.
  • Er enthält keine GROUP BY-Klausel, aggregiert nicht in eine SELECT-Liste oder einen logischen EXIST- oder NOT IN-Operator.
  • Er generiert eindeutige Ergebnisse. Eine Spalte in der korrelierten Unterabfrage ist ein Primärschlüssel. Wenn beispielsweise die „r_regionkey“-Spalte ein Primärschlüssel für die virtuelle Tabelle „vs.nation“ ist, können Sie folgende Abfrage auswählen:
    SELECT * FROM vs.nation WHERE n_regionkey IN (SELECT b.r_regionkey FROM vs.region b WHERE b.r_regionkey = n_regionkey).
  • Wenn sie eine FROM-Liste enthält, ist jede Tabelle in der FROM-Liste eine virtuelle Tabelle im SQL-Datendienst.