SQL Alias

Résolu
david -  
HostOfSeraphim Messages postés 7340 Statut Contributeur -
Bonjour,

je requete sous SQL SERVER, en ODBC sur ingres.

Voici ma requete : select code, case when code2<>code3 then 0 else 1 end as champs from code

where champs=0

Ne fonctionne pas, en faite, je compare donc deux colonnes de ma table avec le case (qui fonctionne) je mets un alias champs à cette colonne mais après je veux voir que ceux dont la valeur de champs est égale à 0.

Comment faire ?

2 réponses

  1. HostOfSeraphim Messages postés 7340 Statut Contributeur 1 609
     
    Je ne suis pas sûr (mais à confirmer) que l'on puisse utiliser l'alias directement dans la requête.

    Sur MySQL avec une requête simple, ça ne marche pas :

    mysql> select * from t5;
    +----+--------+
    | c1 | c2     |
    +----+--------+
    |  1 | test 1 |
    |  2 | test 2 |
    |  3 | test 3 |
    |  4 | test 4 |
    +----+--------+
    4 rows in set (0.00 sec)
    
    mysql> select c1 as id, c2 as libelle from t5;
    +----+---------+
    | id | libelle |
    +----+---------+
    |  1 | test 1  |
    |  2 | test 2  |
    |  3 | test 3  |
    |  4 | test 4  |
    +----+---------+
    4 rows in set (0.00 sec)
    
    mysql> select c1 as id, c2 as libelle from t5 where id=4;
    ERROR 1054 (42S22): Unknown column 'id' in 'where clause'
    mysql>


    A voir si dans ton environnement c'est censé marcher ou pas...

    Sinon, tu peux peut-être mettre en variable le contenu du retour de ton case, pour le réutiliser ensuite.

    0
  2. david
     
    J'ai la même erreur...
    0
    1. HostOfSeraphim Messages postés 7340 Statut Contributeur 1 609
       
      Donc c'est que l'utilisation de l'alias ne doit pas être possible de cette façon.

      Essaye du côté des variables pour réutiliser le résultat dans la requête suivante.
      0
    2. david
       
      Ok merci j'ai trouvé !!
      0
    3. HostOfSeraphim Messages postés 7340 Statut Contributeur 1 609
       
      Et c'était quoi ? Histoire que ça puisse servir à quelqu'un d'autre...
      0