C'est relou ce truc...
Code :
- select case 2 when 1 then 1 when 2 then 2 end
|
=> Retourne "2" (logique)
Code :
- select orgid, count(assetid) toto
- from asset
- group by orgid
- union
- select 999, count(assetid) toto
- from asset
- order by 2
|
Retourne un jeu de résultat trié selon la deuxième colonne (logique)
Code :
- select orgid, count(assetid) toto
- from asset
- group by orgid
- union
- select 999 orgid, count(assetid) toto
- from asset
- order by case 2 when 1 then 1 when 2 then 2 end
|
Marche pas
Le pire, c'est l'erreur :
Serveur : Msg 104, Niveau 15, État 1, Ligne 1
Si l'instruction contient un opérateur UNION, les éléments ORDER BY doivent figurer dans la liste de sélection. |
Truc qui n'a rien à voir, d'autant plus que ma variable n'est pas nommée !
Et... Histoire de bien rigoler...
Code :
- select orgid, count(assetid) toto
- from asset
- group by orgid
- order by case 2 when 1 then 1 when 2 then 2 end
|
Retourne le résultat trié par la seconde colonne !!!!!!!!!
Vin Dieu que c'est chiant ce truc
Et maintenant :
Code :
- select tt, toto
- from (
- select 999 tt, count(assetid) toto
- from asset
- union
- select orgid tt, count(assetid) toto
- from asset
- group by orgid
- ) tmp
- order by case 2 when 1 then tt when 2 then toto end
|
Ca marche !!!!!!
Bon, vais boire un café, me pendre et chais pas quoi d'autre encore.
Message édité par Arjuna le 04-03-2005 à 17:07:06