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

Développement SQL Server Discussion :

EXISTS (SELECT * ou SELECT TOP 1)


Sujet :

Développement SQL Server

  1. #1
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut EXISTS (SELECT * ou SELECT TOP 1)
    Bonjour,

    Je vois des fois dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE EXISTS(SELECT * ou SELECT  TOP 1 1 ...
    SQL Pro dit sur ce sujet
    [...]il convient de toujours utiliser l'étoile comme unique contenu de la clause SELECT de la sous-requête, car dans ce cas particulier, le moteur SQL choisit une constante la plus adaptée à un traitement performant.[...]
    Est-ce que cela signifie bien que l'étoile est plus judicieux ?

    Je me doute bien que l'utilisation de l'étoile ne vas pas parcourir toute les colonnes de la table, j'ai un peu confiance à ceux qui ont développé le moteur.

    Merci
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    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 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Le mieux est de mettre SELECT 1/0 !

    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/ * * * * *

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    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 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    utilisé dans un test d'existence, select *, select 'le fond de l''air est frais' ou select 1 c'est exactement la même chose, le résultat est un booléen.

    Select 1/0 fonctionne, mais, il peut émettre une warning (c'est le cas de DB2 for Z/OS à cause de la division par zéro), les DBA peuvent en prendre ombrage.

    Select null ne fonctionne pas avec tous les SGBD

    J'utilise le plus souvent select 1, simplement pour ne pas coder select * qui peut inciter les débutants à en coder dans d'autres contextes où contrairement au test d'existence, le select * est nuisible (le syndrome du copier-coller )

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

Discussions similaires

  1. [MySQL] Pb requete SELECT top mssql
    Par crevettepourrie dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/01/2006, 16h36
  2. SELECT TOP xxx
    Par CUCARACHA dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/10/2005, 18h24
  3. select top @maVar * from
    Par sacrejohn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/10/2005, 16h39
  4. INSERT + SELECT TOP...argument incorrect
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 12/09/2005, 01h10
  5. Problème avec select top
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 10/12/2004, 14h55

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