vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datenbanken   |   VB-Versionen: VB2005 - VB201510.01.19
SQL: Auswahl der letzten n Datensätze einer Tabelle

Dies ist ein einfacher Tipp für die Selection einer Anzahl von Datensätzen einer Tabelle, die am Ende der Tabelle stehen.

Autor:   Dietrich HerrmannBewertung:  Views:  330 
ohne HomepageSystem:  Vista, Win7, Win8, Win10kein Beispielprojekt 

Man kennt ja die Schreibweise im Transact-SQL für die Auswahl einer Anzahl von Datensätzen, die am Anfang einer Tabelle stehen:

SELECT TOP 5 * FROM myTable

Für die Auswahl von Datensätzen, die am Ende einer Tabelle stehen, gibt es keine solch einfache Notation. Im Tipp zeige ich jetzt, wie man erreichen kann, dass eine gewünschte Anzahl von Datensätzen am Ende einer Tabelle ausgewählt werden, bspw. für eine Anzeige.

Es sei im folgenden Beispiel
die Anzahl der auszuwählenden Sätze gleich 5,
die Tabelle sei myTable,
ID das Primärschlüsselfeld.

Dann kann man schreiben:

SELECT * FROM myTable WHERE (ID NOT IN (SELECT TOP ((SELECT COUNT(*) AS Expr1
  FROM myTable AS myTable_2) - 5) ID
  FROM myTable AS myTable_1))

Man kann bspw. noch ein ORDER BY ... zufügen.

Bei Ausführung werden die letzten 5 Datensätze (gemäß der Sortierung) ausgewählt.



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2019 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.