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

MS SQL Server Discussion :

Différence entre un select max et un select top 1


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut Différence entre un select max et un select top 1
    Je crois que le titre du post résume ma demande

    J'ai repris une procédure stockée qui effectuait un select imbriqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select champ1,
    champ2, 
          (select Top 1 id
                        from table2
                         where table1.anum between table2.Rmin and table2.Rmax)
    From table1
    Le résultat peut-il changer si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select champ1,
    champ2, 
          (select min(id)
                        from table2
                         where table1.anum between table2.Rmin and table2.Rmax)
    From table1

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonsoir,

    Vous manipulez deux concepts différents :
    - la clause TOP spécifie que seul le premier ensemble de lignes sera retourné,
    - MIN est une fonction d'aggrégation qui retourne la valeur minimale d'un ensemble.

    Le résultat peut changer si vous supprimez des lignes de votre table.
    En revanche si votre id est auto-incrémenté et que votre table ne subit uniquement que des insertions, vous obtiendrez le même résultat, mais à mon sens c'est une coïncidence

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut
    La table est autoincrémentée.
    Il s'agit d'une table de référence, elle reste assez stable et surtout on ne supprime pas de référence.
    Merci, cela confirme ce que je pensais.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème select max() sur un select count()
    Par totoAussi dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/02/2015, 01h03
  2. Réponses: 1
    Dernier message: 20/06/2010, 23h20
  3. PL/SQL différence entre deux dates et select into
    Par athone666 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 01/07/2009, 10h38
  4. [VBA pour Excel] Différence entre activate et select
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/10/2008, 17h20
  5. Réponses: 7
    Dernier message: 27/02/2008, 13h55

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