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:
1
2 case when DUREE <60 then 0 else DUREE end as 0,
Version imprimable
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:
1
2 case when DUREE <60 then 0 else DUREE end as 0,
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:
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"
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.
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 :
est plus lisible queCode:
1
2 SELECT count(*) AS "Nombre", sysdate AS "DateHeure" from COMMANDES;
Code:
1
2 SELECT count(*) Nombre, sysdate DateHeure from COMMANDES;
Je préfère qu'ils soient sensibles à la casse et puis c'est plus lisible; mais bon, les goûts et les couleurs :D
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.