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 :

un equivalent à LIMIT ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut un equivalent à LIMIT ?
    Bonjour,
    J'ai une requete "SELECT" pour récupérer l'ensemble des contacts mais je ne veux pas tous les récupérer en une seul fois. C'est pourquoi, j'aurais besoin de récupérer seulement un ensemble de ligne.

    ex: les lignes 1000 à 2000
    (un equivalent à LIMIT de MySql)

    Est-ce que quelqu'un aurait une idée sur la manière de faire ?

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 393

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 990
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 990
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TOP 1000 *
    FROM   Matable
    WHERE  LaClef NOT IN (SELECT TOP 1000 LaClef
                          FROM Matable)
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Par défaut
    Même soucis sauf que ce qui est proposé ne fonctionne pas car mon résultat est basé sur plusieurs clefs et non une seule. Donc el not in sur une clef ne suffit pas.
    Une idée pour me dépanner parce que je galère grave !
    Même le EXCEPT est pas supporté en SQL Server ce qui me supprime une autre alternative.

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Utilise alors une concatenation des champs dans le not in :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TOP 1000 *
    FROM   Matable
    WHERE  Cle1+Cle2+ ....+ Clen NOT IN (SELECT TOP 1000 Cle1+Cle2+ ....+ Clen
                          FROM Matable)
    NB: Pense à faire un cast en varchar avant de faire la concatenation.

    Tu peux aussi utiliser l'operateur not exists

    Bonne chance.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Par défaut
    Merci, finalement j'en suis venu à y penser ce matin mais en trifouillant et en faisant un having couplé à un count...
    Qu'est-ce qui est préférable ?

Discussions similaires

  1. Equivalent C# de la STL <limits>
    Par TheBridge dans le forum C#
    Réponses: 2
    Dernier message: 10/01/2011, 14h17
  2. Bis : un equivalent à LIMIT ?
    Par Thomad dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/07/2006, 17h41
  3. [OracleRDB] Equivalent LIMIT, OFFSET
    Par Hikage dans le forum Oracle
    Réponses: 3
    Dernier message: 01/06/2006, 14h01
  4. [SQL] Equivalent de limit
    Par raj dans le forum Oracle
    Réponses: 3
    Dernier message: 18/10/2005, 19h31
  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