SQL-tabeller repræsenterer uordnet sæt. Er der noget uklart ved dette?
Når du SELECT
fra en tabel, så er resultaterne uordnet . Den eneste undtagelse er, når du bruger en ORDER BY
i den ydre forespørgsel. Så inkluder en ORDER BY
og resultaterne vil være i orden.
EDIT:
Du kan fjerne arbejdet for sorteringen ved at introducere en klynget primærnøgle.
create table #temp (
Id int identity(1,1) primary key clustered,
SKU varchar(10),
QtyRec int,
Expiry date,
Rec date
);
Når du så gør:
insert into #temp(SKU, QtyRec, Expiry, Rec)
select SKU, QtyRec, Expiry, Rec
from @Data
order by id;
Den klyngede primærnøgle i #temp
er garanteret i den rækkefølge, der er angivet af order by
. Derefter forespørgslen:
select *
from #temp
order by id;
returnerer resultaterne i rækkefølge ved hjælp af det grupperede indeks. Ingen sortering er nødvendig.