it-swarm.com.de

wählen Sie die TOP N-Zeilen aus einer Tabelle aus

Ich mache ein wenig Paging, und ich muss ein paar Abfragen machen und die Ergebnisform definieren, die als Slicing definiert wird. Beispiel: Ich muss alle "oberen" Zeilen im Bereich 20n <x <40n usw. erhalten.

SELECT * FROM Reflow  
WHERE ReflowProcessID = somenumber
ORDER BY ID DESC;

und jetzt muss ich meine Spalte mit der Bezeichnung ID verschieben.

Anregungen, wie das geht? Ich muss meine Abfrage auf mysql, mssql und Oracle ausführen.

27
Night Walker

Angenommen, Ihre Seitengröße beträgt 20 Datensätze, und Sie möchten die Seitennummer 2 erhalten. So würden Sie es tun:

SQL Server, Oracle:

SELECT *   -- <-- pick any columns here from your table, if you wanna exclude the RowNumber
FROM (SELECT ROW_NUMBER OVER(ORDER BY ID DESC) RowNumber, * 
      FROM Reflow  
      WHERE ReflowProcessID = somenumber) t
WHERE RowNumber >= 20 AND RowNumber <= 40    

MySQL:

SELECT * 
FROM Reflow  
WHERE ReflowProcessID = somenumber
ORDER BY ID DESC
LIMIT 20 OFFSET 20
48
Bassam Mehanni

In MySql können Sie ab Zeile 20 10 Zeilen mit folgendem Befehl erhalten:

SELECT * FROM Reflow  
WHERE ReflowProcessID = somenumber
ORDER BY ID DESC
LIMIT 10 OFFSET 20 --Equivalent to LIMIT 20, 10
20
Eric
select * from table_name LIMIT 100

denken Sie daran, dass dies nur mit MySQL funktioniert

0
Pravin