“Mehr als eine Zeile, die von einer als Ausdruck verwendeten Unterabfrage zurückgegeben wird“ Postgres-Fehler
Geografische InformationssystemeContents:
Wie kann man mehr als eine Zeile reparieren, die von einer als Ausdruck verwendeten Unterabfrage zurückgegeben wird?
Um den Fehler zu beheben, fügen Sie der Unterabfrage LIMIT 1 hinzu, um höchstens eine Zeile zurückzugeben. Die Anweisung wäre trotzdem unsinnig. In der Praxis möchten Sie Zeilen irgendwie abgleichen, anstatt eine beliebige Zeile aus dem entfernten Tabellenspeicher auszuwählen, um jede Zeile Ihrer lokalen Tabelle customer zu aktualisieren.
Was würde passieren, wenn mehr als eine Zeile aus der Unterabfrage zurückgegeben wird?
Wenn die Unterabfrage eine oder mehrere Wertezeilen zurückgibt, wird die Unterabfrage nur einmal ausgewertet und die Wertezeile(n) dann an die äußere Abfrage zur Verwendung zurückgegeben. Die Zeilenunterabfrage ist MySQL-spezifisch. Andere große Datenbanksysteme (SQL Server, Oracle usw.) verfügen nicht über diese Art von Unterabfrage.
Wie schreibt man eine Subquery in PostgreSQL?
Unterabfragen müssen in Klammern gesetzt werden. Eine Unterabfrage kann nur eine Spalte in der SELECT-Klausel enthalten, es sei denn, die Hauptabfrage enthält mehrere Spalten, damit die Unterabfrage ihre ausgewählten Spalten vergleichen kann. Ein ORDER BY kann nicht in einer Unterabfrage verwendet werden, obwohl die Hauptabfrage ein ORDER BY verwenden kann.
Wie funktioniert eine Subquery in PostgreSQL?
In PostgreSQL kann eine Subquery innerhalb einer SELECT-, INSERT-, UPDATE-, DELETE-, SET- oder DO-Anweisung oder innerhalb einer anderen Subquery verschachtelt werden. Eine Subquery wird normalerweise innerhalb der WHERE-Klausel einer anderen SQL SELECT-Anweisung eingefügt. Sie können die Vergleichsoperatoren, wie >, < oder =, verwenden. 19. August 2022
Wie behebe ich Ora 01427 single row subquery returns more than one row in SELECT?
Dmytro gab folgende Ratschläge zur Behebung von ORA-01427: Versuchen Sie, die Bedingungen für die Unterabfrage um rownum=1 zu ergänzen, wenn Sie sich NICHT um den Wert aus der Liste kümmern oder sicher sein wollen, dass sie gleich sind. Eine einzeilige Unterabfrage gibt nur eine Zeile zurück. Sie kann mit den gleichen Vergleichsoperatoren (=,<,>,<>, usw.) verwendet werden.
Warum gibt die Unterabfrage mehr als einen Wert zurück, was nicht zulässig ist, wenn die Unterabfrage auf != <= >= folgt oder wenn die Unterabfrage als Ausdruck verwendet wird?
Antwort: Diese Fehlermeldung erscheint, wenn Sie versuchen, eine Unterabfrage (korreliert oder nicht) zu verwenden, die mehr als einen Wert an die aufrufende Abfrage zurückgibt. Dies zeigt in der Regel an, dass es doppelte Einträge in der Spalte einer Tabelle gibt, in der erwartet wird, dass sie eindeutig ist.
Wie kann ich die Anzahl der in einer Abfrage zurückgegebenen Zeilen begrenzen?
Die SQL LIMIT-Klausel schränkt ein, wie viele Zeilen aus einer Abfrage zurückgegeben werden. Die Syntax für die LIMIT-Klausel lautet: SELECT * FROM table LIMIT X;. X steht für die Anzahl der Datensätze, die Sie abrufen möchten. Sie können die LIMIT-Klausel zum Beispiel verwenden, um die fünf besten Spieler einer Rangliste abzurufen.
17. Dezember 2020
Können Sie mehr als eine Unterabfrage haben?
Eine Subquery ist eine vollständige Abfrage, die in der WHERE- oder HAVING-Klausel einer SQL-Anweisung erscheint. Sie können bis zu 16 Unterabfragen in einer einzigen SQL-Anweisung angeben, und Sie können Unterabfragen innerhalb einer Unterabfrage angeben. Unterabfragen werden innerhalb der SQL-Hauptanweisung, in der sie erscheinen, von hinten nach vorne ausgeführt.
Wird die Subquery für jede Zeile ausgeführt?
Jede Unterabfrage wird einmal für jede Zeile der äußeren Abfrage ausgeführt. Eine korrelierte Unterabfrage wird für jede Zeile, die von der übergeordneten Anweisung verarbeitet wird, einmal ausgewertet. Die übergeordnete Anweisung kann eine SELECT-, UPDATE- oder DELETE-Anweisung sein.
11. Dezember 2022
Welcher Operator kann mit einer Unterabfrage verwendet werden, die mehrere Zeilen zurückgibt?
Antwort: D. Mehrzeilige Unterabfragen geben mehr als eine Zeile an Ergebnissen zurück. Zu den Operatoren, die mit Unterabfragen mit mehreren Zeilen verwendet werden können, gehören IN, ALL, ANY und EXISTS.
Wie kann ich die Anzahl der in einer Abfrage zurückgegebenen Zeilen begrenzen?
Die SQL LIMIT-Klausel schränkt ein, wie viele Zeilen aus einer Abfrage zurückgegeben werden. Die Syntax für die LIMIT-Klausel lautet: SELECT * FROM table LIMIT X;. X steht für die Anzahl der Datensätze, die Sie abrufen möchten. Sie können die LIMIT-Klausel zum Beispiel verwenden, um die fünf besten Spieler einer Rangliste abzurufen.
17. Dezember 2020
Welcher Operator wird in einer mehrzeiligen Unterabfrage als gleich zu einer einzeiligen Unterabfrage verwendet?
Die Operatoren, die mit einzeiligen Unterabfragen verwendet werden können, sind =, >, >=, <, <= und <>. Gruppenfunktionen können in der Unterabfrage verwendet werden. Die folgende Anweisung ruft zum Beispiel die Details des Mitarbeiters mit dem höchsten Gehalt ab.
Recent
- Stereopaar-Bildregistrierung
- SQL Server zu Google Maps
- Extrahieren von Lat/Lng aus Shapefile mit OGR2OGR/GDAL
- Abfrage in Nominatim konstruieren
- In Ogr2OGR: Was ist SRS?
- Identifizierung von Portnummern für ArcGIS Online Basemap?
- Entfernen unerwünschter Regionen aus Kartendaten QGIS
- Warten auf Vector & WFS-Laden
- Hinzufügen von Reisezeit als Impedanz in ArcGIS Network Analyst?
- Auflistung der Gesamtzahl von Features in einem ArcGIS Online Feature-Pop-up
- Kriterien für die kartographische Kapazität
- Große Rasterdatei in QGIS kacheln
- QGIS-Tin-Verbindung funktioniert nicht
- QGIS-Projekt mit qgis2web exportieren