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

Adaptive Server Enterprise Sybase Discussion :

SQL : Order by 0


Sujet :

Adaptive Server Enterprise Sybase

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut SQL : Order by 0
    Bonjour,

    petit cas de conscience :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (SELECT 1) UNION (SELECT 2) ORDER BY 0
    Me renvoie l'erreur :
    Error: The order-by position number '0' is out of range of the number of items in the select-list.
    Tandis que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select 1 as 'v' into #tmp
     
    select v
    from #tmp
    group by v
    ORDER BY CASE WHEN 1=1 THEN 0 END
    Fonctionne. Comment ça se fait? Quelle est la colonne utilisée quand je stipule 0 ?

    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Dans le premier cas il essaie d'effectuer le tri sur la "zérotième" colonne, d'où l'erreur.

    Dans le second cas il effectue le tri sur la valeur 0, résultat du case.

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Dans le premier cas il essaie d'effectuer le tri sur la "zérotième" colonne, d'où l'erreur.

    Dans le second cas il effectue le tri sur la valeur 0, résultat du case.
    Ok, je trouve ça nul, mais bon

    Ah oui, deuxième question du coup, qui en résulte.

    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 1 AS 'v' INTO #tmp
     
    SELECT v
    FROM #tmp
    GROUP BY v
    ORDER BY CASE WHEN 1=1 THEN 1 END
    Il me trie bien selon la colonne, y a une notion de "priorité" ou bien c'est un coup de moule si ça fonctionne?

    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Par défaut
    Si ton exemple est bien complet le résultat est normal - tu n'as que la valeur 1 dans ta colonne.

    Michael

  5. #5
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Citation Envoyé par mpeppler Voir le message
    Si ton exemple est bien complet le résultat est normal - tu n'as que la valeur 1 dans ta colonne.

    Michael
    J'ai pris évidemment un exemple simplifié, je fais des tests sur vraie table contenant plusieurs colonnes et plusieurs milliers de lignes
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par Arnaud F. Voir le message
    Il me trie bien selon la colonne, y a une notion de "priorité" ou bien c'est un coup de moule si ça fonctionne ?
    La seconde solution, comme la valeur 1 est appliquée partout on ne peut rien en déduire quant à l'ordre final.

  7. #7
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Citation Envoyé par Waldar Voir le message
    La seconde solution, comme la valeur 1 est appliquée partout on ne peut rien en déduire quant à l'ordre final.
    C'est cool, du coup ça remet beaucoup de chose en question dans le SI
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

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

Discussions similaires

  1. [SQL] Order by et Union (?)
    Par Procto dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/02/2010, 09h23
  2. [SS 2K5] Transact-SQL : ORDER BY et CURSOR
    Par SebastienM dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/06/2009, 09h40
  3. [SQL] Order by particulier
    Par -Ju- dans le forum SQL
    Réponses: 2
    Dernier message: 29/02/2008, 15h16
  4. [FB] Bde vs FibPlus Probleme SQL (Order by et Union)
    Par SergioMaster dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/06/2007, 13h41
  5. [PL/SQL] ORDER BY 'param1'
    Par Sloneczko dans le forum Oracle
    Réponses: 5
    Dernier message: 12/06/2006, 15h06

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