jeg har antaget, at din tabel består af kolonnerne: column1, column2 og column3, og at det er den 3. højeste værdi af column2 du vil have valgt ud. Så kan du selv tilpasse koden til dit konkrete tilfælde.
with cte as ( select column1, column2, column3, row_number() over (order by column2 desc) as rownumber, from dinTabel )
select top 1 column1, column2, column3 from cte where rownumber = 3
Hvis der fx er 2 rækker der begge har den samme værdi, som tilfældigvis er den 3. højeste værdi - så vil ovenstående kode kun returnere én af disse rækker. Hvis du vil have dem alle, så skal du bare fjerne "top 1".
Hvis IKKE du kører sql 2005, så kan du tage en tmp-tabel i brug:
select top 3 * into #tmp from dinTabel order by column2 desc go
Jeg har imellemtiden selv lavet en løsning. Jeg skriver hele koden til hele metoden her:
protected void vis_nyheder() { for( int i = 1; i <= 3; i++) { SqlConnection con = new SqlConnection("Server=msdb1.surftown.dk;User=barcode_martin;Password=barcode;Database=barcode_nyheder"); con.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM nyheder n WHERE 3 = (SELECT COUNT(DISTINCT(nyhed_nummer))+ " + i + " FROM nyheder WHERE n.nyhed_nummer < nyhed_nummer)", con); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { //Seneste nyhed if (i == 1) { attr_titel_nyhed1 = rdr["titel"].ToString(); attr_body_nyhed1 = rdr["body"].ToString(); attr_dato_nyhed1 = rdr["dato"].ToString(); attr_link_nyhed1 = rdr["link"].ToString();
//Indsætter text i label, og sætter linket. Label_titel1.Text = attr_titel_nyhed1; Label_body_nyhed1.Text = attr_body_nyhed1; Label_dato_nyhed1.Text = attr_dato_nyhed1; HyperLink_nyhed1.NavigateUrl = attr_link_nyhed1; }
Nu kommer det jo ikke mig ved, men måske det ikke er så smart at poste både username og password ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.