IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Equivalent last Firebird


Sujet :

SQL Firebird

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 34
    Points : 26
    Points
    26
    Par défaut Equivalent last Firebird
    Bonjour,

    Je veux récupérer le dernier enregistrement d'une colonne dans une base Firebird

    ce qui donne ceci : SELECT last 1(colonne1) from table1 me retourne une erreur



    Quelle est la bonne syntaxe

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Il suffit d'inverser l'ordre de tri et de prendre le premier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT FIRST 1 
      F1
    FROM 
      T_TABLE
    ORDER BY
      F1 DESC;
    La création d'un index DESC sur F1 peut s'avérer utile voire nécessaire.

    @+ Claudius

  3. #3
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Tout dépend de ce que veut dire 'Le dernier' ? Le dernier suivant quelle ordre ?

    Pour simplifier la requête de Cl@udius :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select max(F1) from table;


    Sinon si c'est le dernier suivant la clé primaire de la table suivre la syntaxe de Cl@udius :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select FIRST 1 MA_Colonne 
    from MA_Table 
    order by ID_MA_TABLE DESC;

  4. #4
    Membre du Club

    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 43
    Points
    43
    Par défaut
    Evitez d'utiliser Order (pour des raisons de rapidité) :
    Utilisez plutôt ceci (ultra rapide) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT colonne1  from table1 Where (ID = (Select max(ID) From Table1)  )

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 142
    Points : 38 926
    Points
    38 926
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    A propos de ceci :
    Citation Envoyé par moyzer Voir le message
    Utilisez plutôt ceci (ultra rapide) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT colonne1  from table1 Where (ID = (Select max(ID) From Table1)  )
    Cette méthode n'est pas valable si la colonne id est de type "identity column" : rien ne garantit que la valeur d'identifiant la plus forte soit celle insérée en dernier

Discussions similaires

  1. Creation d'index equivalent à celui de Firebird
    Par Cpt Anderson dans le forum Développement
    Réponses: 3
    Dernier message: 13/04/2011, 19h46
  2. equivalent de mysql_insert_id dans firebird
    Par omar24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/02/2011, 17h55
  3. equivalent de EXPLAIN (mysql) pour firebird ?
    Par ]matmat[ dans le forum SQL
    Réponses: 3
    Dernier message: 25/08/2006, 17h46
  4. Réponses: 2
    Dernier message: 28/01/2005, 06h43
  5. [Kylix] Equivalent ShellExec en CLX
    Par Anonymous dans le forum EDI
    Réponses: 7
    Dernier message: 14/08/2002, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo