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 :

clause limit


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 25
    Par défaut clause limit
    bonjour,
    je voudrais savoir si il existe un equivalent de la clause "limit" (mysql) pour le tsql ?

    cordialement.

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 45
    Par défaut
    Ca existe...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from maTable limit 10
    devient en T-SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select top 10 * from maTable

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 25
    Par défaut
    oui, mais si je veux faire limit 10 à 50 ?

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 45
    Par défaut
    Alors là ce n'est pas possible à ma connaissance...

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut
    Mais si pas facile mais possible : Bon il me semble que le limit est inclusif donc ça donnerai ça :

    Imaginons une table test contenant un champ F1 avec des valeurs allant de 0 à 100 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT	F1
    FROM	(	SELECT	TOP 51 F1
    		FROM	(
    			SELECT     TOP 60 F1
    			FROM          TEST
    	) DERIVEDTBL
                           ORDER BY F1 DESC) DERIVEDTBL
    ORDER BY F1
    Te retourne :
    10
    11
    12
    ....
    60

    ce qui te donne un équivalent de LIMIT 10,50 8)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 8
    Par défaut equivalent claus limit utilise avex MySql
    effectivement cela peut fonctionner mais comment rendre cela dynamique car il me semble que le TOP n'accepte pas de variable pour fair quelquechose comme TOP @debut_limite

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut
    Tu créer la reqûete à la volée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    DECLARE @DEBUT INT
    DECLARE @FIN INT
    DECLARE @SQL VARCHAR(1000)
    SET @DEBUT = 10
    SET @FIN = 50
     
    SET 	@SQL 	= '	SELECT   F1 
    			FROM   (SELECT   TOP '+ CAST(@FIN+1 AS VARCHAR) +' F1 
          				FROM   ( 
             				SELECT	TOP '+ CAST(@DEBUT+@FIN AS VARCHAR)+' F1 
    					FROM	TEST 
    					) DERIVEDTBL 
    				ORDER BY F1 DESC) DERIVEDTBL 
    			ORDER BY F1 '
    EXEC(@SQL)

  8. #8
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 25
    Par défaut
    derniere question :
    à quoi sert la fonction derivedtbl ?

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut
    C'est simplement un alias qui permet de faire référence aus champs de la requête dans la clause from :


    Citation Envoyé par Exemple
    SELECT ST.stor_id, ST.stor_name
    FROM stores AS ST,
    (SELECT stor_id, COUNT(DISTINCT title_id) AS title_count
    FROM sales
    GROUP BY stor_id
    ) AS SA
    WHERE ST.stor_id = SA.stor_id
    AND SA.title_count = (SELECT COUNT(*) FROM titles)

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

Discussions similaires

  1. Erreur, lors de variables dans la clause LIMIT
    Par ToxiZz dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/11/2006, 19h32
  2. La clause LIMIT me renvoie 20 résultats
    Par dafalri dans le forum Requêtes
    Réponses: 6
    Dernier message: 31/08/2006, 15h51
  3. [PDO] PDO et clause LIMIT
    Par jeff_! dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/05/2006, 18h33
  4. [ODBC] Problème d'utilisation de la clause LIMIT
    Par Thierry8 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/10/2005, 09h55
  5. Variable dans la clause LIMIT
    Par oxa dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/07/2005, 15h12

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