122 votes

Comment sélectionner la plupart des lignes du bas ?

Je peux SÉLECTIONNER TOP (200) ... mais pourquoi pas BOTTOM (200) ?

Eh bien, pour ne pas entrer dans la philosophie ce que je veux dire est, comment puis-je faire l'équivalent de TOP (200) mais en sens inverse (par le bas, comme vous vous attendriez à ce que BOTTOM fasse...) ?

117voto

Tom H. Points 23783
SELECT
    columns
FROM
(
     SELECT TOP 200
          columns
     FROM
          My_Table
     ORDER BY
          a_column DESC
) SQ
ORDER BY
     a_column ASC

104voto

Justin Ethier Points 57486

Ce n'est pas nécessaire. Vous pouvez utiliser un ORDER BY et juste changer le tri à DESC pour obtenir le même effet.

32voto

Shadi Namrouti Points 1453

Logiquement,

BOTTOM (x) is all the records except TOP (n - x), where n is the count; x <= n

Par exemple, sélectionnez le bas de la page 1000 de l'employé :

Dans T-SQL,

DECLARE 
@bottom int,
@count int

SET @bottom = 1000 
SET @count = (select COUNT(*) from Employee)

select * from Employee emp where emp.EmployeeID not in 
(
SELECT TOP (@count-@bottom) Employee.EmployeeID FROM Employee
)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X