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

Langage SQL Discussion :

[SQL Server] Sélection de lignes aléatoire dans un résultat


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 34
    Points : 32
    Points
    32
    Par défaut [SQL Server] Sélection de lignes aléatoire dans un résultat
    Tout d'abord, bonjour à tous !

    Je me pose une question SQL et j'espère que vous saurez me répondre. Je vous en remercie également d'avance.

    Est-il possible de sélectionner aléatoirement les lignes d'un résultat d'une requête SQL ?




    Un simple exemple de ce que je recherche avec une seule table :

    » Une table toute simple concernant des "personnes"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM personnes
    Je vais évidemment me retrouver avec tous les enregistrements de la table personnes dans mon résultat. Ce qu'il me faudrait, c'est pouvoir n'en garder que N au hasard.

    Est-il possible de faire celà Directement dans la requête elle même ? Car évidemment si je devais récupérer toutes les lignes de la table pour ensuite faire une sélection aléatoire dans la partie logicielle appellante, il y aurait de gros problèmes de performances :'( .

    Merci à vous !

  2. #2
    Membre éclairé
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Points : 776
    Points
    776
    Par défaut
    Ce code te retournera N éléments sélectionnés au hazard.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TOP N *
    FROM personnes
    ORDER BY newid()
    Avant de poster : FAQ, tutos, rechercher, google, ... Après :
    Merci

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    Merci pour cette réponse très rapide ! Résolu !

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par efficks
    Ce code te retournera N éléments sélectionnés au hazard.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TOP N *
    FROM personnes
    ORDER BY newid()
    Quand vous utilisez des fonctions, l'idéal serait de nous préciser par quels SGBD elles sont supportées

    En l'occurence, NewId, c'est du SQL Server.
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/10/2014, 13h19
  2. Réponses: 1
    Dernier message: 15/05/2008, 11h48
  3. Réponses: 3
    Dernier message: 03/05/2007, 11h06
  4. Réponses: 2
    Dernier message: 09/04/2007, 10h21
  5. Réponses: 3
    Dernier message: 17/10/2006, 09h16

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