Bonjour et surtout très bonne année 2003 à tous !

Soit la requete suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select inc_nomprenom, inc_num1 AS num_tel from interlocuteurs where inc_num1 is not null
UNION
select inc_nomprenom, cast('-' as varchar(20)) AS num_tel from interlocuteurs where inc_num1 is null;
qui, vous l'aviez deviné ;-), me permet d'obtenir une liste de personnes et de numéros de téléphones en remplaçant les valeurs null par des '-'.

Deux questions sur le sujet :

1) Pour trier cette requête par nom prénom, j'ai été contraint de créer une vue :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
create view annuaire (NomPrenom, Telephone) as
select inc_nomprenom, inc_num1 AS num_tel from interlocuteurs where inc_num1 is not null
UNION
select inc_nomprenom, cast('-' as varchar(20)) AS num_tel from interlocuteurs where inc_num1 is null;
et de faire ensuite un

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Select * from annuaire order by NomPrenom
Y'a t'il moyen de faire plus simple ?

2) Je n'ai pas trouvé le moyen d'écrire un seul Select (sinon le problème ne se poserait pas) pour transformer les valeurs nulles de ma colonne 'INC_NUM1' en '-'. Le 'When ... then ... end case' n'existe pas avec Interbase ?

Merci d'avance pour votre aide !