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 Oracle Discussion :

Alias nom de champs


Sujet :

SQL Oracle

  1. #1
    Membre actif
    Alias nom de champs
    Bonjour à tous,

    Je cherche à aliaser un nom de champs en lui donnant un nombre comme nom (0 dans le cas ci-dessous). Oracle ne l'accepte pas. Y aurait t'il une solution?

    Ma ligne est du type

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
     case when DUREE <60 then 0 else DUREE end as 0,

  2. #2
    Modérateur

    Pour déclarer un alias a-normal (qui ne respecte pas la norme du langage SQL), il suffit d'encadrer son nom avec des guillemets à chaque fois qu'on l'utilise.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    with    "1"
        as  (   select  1 as "0"
                from    dual
            )
        ,   "2"
        as  (   select  2 as "-1"
                from    dual
            )
    select  "1"."0" + "2"."-1"  as "=3"
    from    "1"
        cross join
            "2"
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre éclairé
    Bonjour,

    Se référer à la doc pour les règles sur les identifiants:

    https://docs.oracle.com/cd/B28359_01...htm#SQLRF00223

    Un alias sans guillemets doit commencer par une lettre. Sinon vous pouvez toujours nommer l'alias zero.

  4. #4
    Membre chevronné
    J'apporte mon petit grain de "sable" même si je ne vais pas piquer : c'est toujours une bonne pratique de mettre, comme le fait ruru9, le mot as voir même AS devant l'alias.
    Pourquoi? cela rend la requête plus lisible et puis ça évite les pbs de virgule oubliée entre deux champs; dans ce cas, le champ 2 devient alias du champ 1 et mon résultat peut être incompréhensible.

    MAIS, et là je pique un peu, mettez TOUJOURS "" au niveau de vos alias, même pour des alias hyper simples :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    SELECT count(*) AS "Nombre", sysdate AS "DateHeure"
    from COMMANDES;

    est plus lisible que
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    SELECT count(*) Nombre, sysdate DateHeure
    from COMMANDES;
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  5. #5
    Modérateur

    Citation Envoyé par Ikebukuro Voir le message
    MAIS, et là je pique un peu, mettez TOUJOURS "" au niveau de vos alias, même pour des alias hyper simples
    Non, car ça les rends sensibles à la casse et pour tous les appels ultérieurs il faudra remettre les doubles quotes et la même casse.
    Utile pour un export de fichier, complètement inutile pour 99.9% des requêtes qu'on tape.

  6. #6
    Membre chevronné
    Je préfère qu'ils soient sensibles à la casse et puis c'est plus lisible; mais bon, les goûts et les couleurs
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  7. #7
    Expert éminent
    Ouais, bof bof pour la lisibilité. Je déteste les requêtes générées par les outils de BI, tout est rouge. toutes les tables sont préfixées du schéma, tout en double quote.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

###raw>template_hook.ano_emploi###