SQL-tabellen vertegenwoordigen ongeordend stelt. Is hier iets onduidelijk aan?
Wanneer u SELECT
uit een tabel, dan zijn de resultaten ongeordend . De enige uitzondering is wanneer u een ORDER BY
. gebruikt in de buitenste vraag. Voeg dus een ORDER BY
toe en de resultaten zullen in orde zijn.
BEWERKEN:
U kunt het werk elimineren voor de sortering door een geclusterde primaire sleutel te introduceren.
create table #temp (
Id int identity(1,1) primary key clustered,
SKU varchar(10),
QtyRec int,
Expiry date,
Rec date
);
Wanneer je dat doet:
insert into #temp(SKU, QtyRec, Expiry, Rec)
select SKU, QtyRec, Expiry, Rec
from @Data
order by id;
De geclusterde primaire sleutel in #temp
is gegarandeerd in de volgorde gespecificeerd door de order by
. Dan de vraag:
select *
from #temp
order by id;
zal de resultaten in volgorde retourneren, met behulp van de geclusterde index. Sorteren is niet nodig.