221 votes

Comment sélectionner le dernier enregistrement d'une table en SQL ?

Voici un exemple de code pour sélectionner tous les enregistrements d'un tableau. Quelqu'un peut-il me montrer comment sélectionner le dernier enregistrement de ce tableau ?

select * from table

Quand je l'utilise : SELECT * FROM TABLE ORDER BY ID DESC LIMIT J'obtiens cette erreur : Ligne 1 : syntaxe incorrecte près de 'LIMIT'. Voici le code que j'utilise :

private void LastRecord()
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["HELPDESK_OUTLOOKConnectionString3"].ToString());

    conn.Open();
    SqlDataReader myReader = null;
    SqlCommand myCommand = new SqlCommand("SELECT * FROM HD_AANVRAGEN ORDER BY " +
                "aanvraag_id DESC LIMIT 1", conn);
    myReader = myCommand.ExecuteReader();
    while (myReader.Read())
    {
        TextBox1.Text = (myReader["aanvraag_id"].ToString());
        TextBox1.Text += (myReader["wijziging_nummer"].ToString());
        TextBox1.Text += (myReader["melding_id"].ToString());
        TextBox1.Text += (myReader["aanvraag_titel"].ToString());
        TextBox1.Text += (myReader["aanvraag_omschrijving"].ToString());
        TextBox1.Text += (myReader["doorlooptijd_id"].ToString());
        TextBox1.Text += (myReader["rapporteren"].ToString());
        TextBox1.Text += (myReader["werknemer_id"].ToString());
        TextBox1.Text += (myReader["outlook_id"].ToString());
    }
}

0 votes

Eh bien, il faut commander quelque chose. Avez-vous une clé primaire ? Peut-être un ID ?

0 votes

Que voulez-vous dire par "dernier enregistrement" ? Avec la plus haute valeur de la colonne clé primaire ?

1 votes

2011, c'était il y a de nombreuses années. Aujourd'hui, vous devriez utiliser offset 0 rows fetch first 1 row only - car il est conforme à la norme ANSI SQL et fonctionne avec la plupart des bases de données modernes.

-2voto

vikas95prasad Points 93

Vous pouvez aussi faire quelque chose comme ça :

SELECT LAST (column_name) AS LAST_CUSTOMER FROM table_name;

-4voto

user12403395 Points 7

J'ai voté pour Ricardo. En fait, max est beaucoup plus efficace que le tri. Voyez les différences. C'est excellent.

J'ai dû récupérer la dernière ligne/le dernier enregistrement de mise à jour (timeStamp).

`sqlite> select timeStamp from mypadatav2 order by timeStamp desc limit 1;
 2020-03-11 23:55:00
 Run Time: real 1.806 user 1.689242 sys 0.117062`

`sqlite> select max(timeStamp) from mypadatav2;
 2020-03-11 23:55:00
 Run Time: real 0.553 user 0.412618 sys 0.134340`

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X