SQL-tabeller representerar oordnade set. Är det något oklart med detta?
När du SELECT
från en tabell är resultaten oordnade . Det enda undantaget är när du använder en ORDER BY
i den yttre frågan. Så inkludera en ORDER BY
och resultaten kommer att vara i sin ordning.
EDIT:
Du kan ta bort arbetet för sorteringen genom att introducera en klustrad primärnyckel.
create table #temp (
Id int identity(1,1) primary key clustered,
SKU varchar(10),
QtyRec int,
Expiry date,
Rec date
);
Sedan när du gör det:
insert into #temp(SKU, QtyRec, Expiry, Rec)
select SKU, QtyRec, Expiry, Rec
from @Data
order by id;
Den klustrade primärnyckeln i #temp
är garanterat i den ordning som anges av order by
. Sedan frågan:
select *
from #temp
order by id;
returnerar resultaten i ordning, med hjälp av det klustrade indexet. Ingen sortering kommer att behövas.