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

SQL Firebird Discussion :

a propos de COLLATE dans un ORDER BY


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut a propos de COLLATE dans un ORDER BY
    Bonjour a tous

    Dans le cadre d'un projet internationalisable, il me faudrait pouvoir trier des listes de mots dans la langue de l'utilisateur (en francais, anglais, allemand, ...) [je n'utilise pas UTF.


    j'ai une table qui stocke les valeurs de collation (FR_FR, ES_ES, etc)

    Voici le type de requete tentee :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT Table.Mot, 
    ....,
    ....
    FROM Table
    ORDER  BY table.Mot COLLATE (SELECT Langue.Trie 
                                                  FROM Langue 
                                                  WHERE Langue.Id_Langue = :Id_langue_in)
    cela fournit une erreur "Token" inconnu

    de meme en remplacant par une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER  BY table.Mot COLLATE :Trie
    Y a il moyen de faire cela sans passer par un
    EXECUTE STATEMENT ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    EXECUTE STATEMENT 'SELECT Table.Mot, 
    ....,
    ....
    FROM Table
    ORDER  BY table.Mot COLLATE (SELECT Langue.Trie 
                                                  FROM Langue 
                                                  WHERE Langue.Id_Langue = ' || :Id_langue_in || ')
    ou la ca marche

    merci

    a+
    olivier

    PS firebird 2.5

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    Y a il moyen de faire cela sans passer par un
    EXECUTE STATEMENT ?
    non

  3. #3
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Merci

    Dommage

    peut etre dans la version 3, au moins via un parametre

    a+

    olivier

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    non

    pour x raisons, dont une majeure, un ordre de tri influe sur le tri, et donc aussi sur le plan utilisé pour la requete

    je ne vois pas comment on pourrait préparer ce genre de requete

    ce que tu demandes n'est qu'une simplicité d'écriture, que tu peu très bien gérer dans ton logiciel, ou par du code de procédure comme avec EXECUTE STATEMENT

    mais écrire cela en sql, non

  5. #5
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    en effet, totalement logique

    j'utiliserai le exe statement en cas de neccessite



    olivier

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

Discussions similaires

  1. Variable dans le order by
    Par djoao dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 16/01/2007, 16h20
  2. a propos de fgets dans la faq
    Par remi77 dans le forum C
    Réponses: 4
    Dernier message: 20/10/2006, 10h31
  3. [SQL] Placer deux clauses dans un ORDER BY
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/05/2006, 16h13
  4. Place d'un élément dans un ORDER BY
    Par sourivore dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/09/2005, 18h13
  5. problème de "collation" dans un UNION
    Par bilb0t dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 15/06/2004, 12h12

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