limit with bindes: Hat postgresql es implementiert?
In SQL Server ruft das Syntax Top n mit Krawatten zusammen und ruft die ersten N -Reihen zusammen mit allen Strecken ab. Postgresql -Benutzer fragen sich jedoch möglicherweise, ob es eine äquivalente Syntax gibt.
postgresqls Lösung: mit Bindungen (postgresql 13)
beginnend mit Postgresql 13 wurde eingeführt. Diese Klausel verhält sich ähnlich wie sein SQL -Server -Gegenstück und holt die oberen N -Zeilen plus gebundene Zeilen. Eine Problemumgehung besteht darin, die folgende Abfrage auszuführen:
mit CTE as ((
Wählen Sie *, rank () over (bestellen von
example
WITH cte AS ( SELECT *, rank() OVER (ORDER BY) AS rnk FROM tbl ) SELECT * FROM cte WHERE rnk eine Tabellenzahlen mit Werten {10, 9, 8, 8, 2}. Die folgende Abfrage würde {10, 9, 8, 8} anhand der alternativen Methode für PostgreSQL 12 und älter zurückgeben:
mit cte als ( Wählen Sie NUMS, Rank () Over (Order by Nums Desc) als RNK Aus Zahlen ) WÄHLEN * Von cte Wobei rnk
Hinweis:Die in dieser Alternative verwendete Funktion rank () unterscheidet sich von dense_rank (), da letztere falsche Ergebnisse erzielen würden, indem sie zu viele Zeilen zurückgeben.
.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3