J'ai un tableau et j'ai besoin de récupérer l'ID de la deuxième ligne. Comment faire ?
Par Top 2
Je sélectionne les deux premières lignes, mais j'ai besoin de seulement la deuxième ligne
J'ai un tableau et j'ai besoin de récupérer l'ID de la deuxième ligne. Comment faire ?
Par Top 2
Je sélectionne les deux premières lignes, mais j'ai besoin de seulement la deuxième ligne
Supposons que le serveur SQL 2005+ un exemple de la façon d'obtenir juste la deuxième ligne (ce que je pense que vous demandez - et c'est la raison pour laquelle top
ne fonctionnera pas pour vous)
set statistics io on
;with cte as
(
select *
, ROW_NUMBER() over (order by number) as rn
from master.dbo.spt_values
)
select *
from cte
where rn = 2
/* Just to add in what I was running RE: Comments */
;with cte as
(
select top 2 *
, ROW_NUMBER() over (order by number) as rn
from master.dbo.spt_values
)
select *
from cte
where rn = 2
Utilisez ROW_NUMBER()
pour numéroter les lignes, mais utilisez TOP
pour ne traiter que les deux premiers.
Essayez ceci :
DECLARE @YourTable table (YourColumn int)
INSERT @YourTable VALUES (5)
INSERT @YourTable VALUES (7)
INSERT @YourTable VALUES (9)
INSERT @YourTable VALUES (17)
INSERT @YourTable VALUES (25)
;WITH YourCTE AS
(
SELECT TOP 2
*, ROW_NUMBER() OVER(ORDER BY YourColumn) AS RowNumber
FROM @YourTable
)
SELECT *
FROM YourCTE
WHERE RowNumber=2
SORTIE :
YourColumn RowNumber
----------- --------------------
7 2
(1 row(s) affected)
Je suppose que vous utilisez SQL 2005 ou supérieur. La 2ème ligne sélectionne les 2 premières lignes et en utilisant la commande ORDER BY ROW_COUNT DESC
la 2ème ligne est disposée comme étant la première, puis elle est sélectionnée en utilisant TOP 1.
SELECT TOP 1 COLUMN1, COLUMN2
from (
SELECT TOP 2 COLUMN1, COLUMN2
FROM Table
) ORDER BY ROW_NUMBER DESC
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.