DBAtlas · Atlas für Datenbankbetrieb

512: Subquery returned more than 1 value (Unterabfrage lieferte mehr als einen Wert)

SQL Server

Was bedeutet das?

Eine Unterabfrage in einem Kontext, der einen einzelnen Wert erwartet (=, <, >, Vergleich oder Zuweisung), hat mehr als eine Zeile zurückgegeben. SQL Server erwartete einen einzelnen skalaren Wert, stieß aber auf mehrere Werte.

Ursache

Eine Unterabfrage, von der für den Vergleich ein einzelner Wert angenommen wird, liefert mehrere Zeilen, eine nicht eindeutige Abgleichbedingung, ein fehlender Filter oder eine falsch aufgebaute korrelierte Abfrage.

Lösung

Reduziere die Unterabfrage auf eine einzelne Zeile (z. B. TOP 1, MAX/MIN oder ein passendes GROUP BY). Werden mehrere Werte erwartet, verwende IN oder EXISTS statt =. Schreibe sie mit einem JOIN um. Untersuche, warum die Unterabfrage mehrere Zeilen liefert, und korrigiere die Filter-/Schlüsselbedingungen.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank