Hvis du skal bruge resultatet i klient-kode (ASP, ASP.NET, WinForms eller lignende), kan du lave en stored procedure, som returnerer et resultatsæt efter ønske. Denne stored procedure ser ud som følger:
create procedure GetRanking as set nocount on
create table #Ranking ( Position int identity(1, 1), ID int, Points decimal(10, 2) )
insert #Ranking (ID, Points) select ID, Points from Points order by Points desc
set nocount off
select * from #Ranking order by Position
set nocount on
drop table #Ranking
Hvis du skal bruge resultatet i en større SQL sammenhæng, så du skal kunne joine med det, er du nødt til at lave en table function. Den ser således ud:
create function fnGetRanking() returns @ranking table ( Position int identity(1, 1), ID int, Points decimal(10, 2) ) as begin insert @ranking (ID, Points) select ID, Points from Points order by Points desc
return end
Jeg har taget udgangspunkt i, at IDNr er int og Points er decimal(10, 2), men begge disse kan ændres efter behov.
Benny -> Det ser godt ud. Har dog ikke mulighed for at teste det nu. Men så vidt jeg kan se, tager din funktion ikke højde for at nogle fx. har en del 4-plads eller sådan, som skitseret øverst.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.