Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/01/2003, 10h21   #1
Membre confirmé
 
Avatar de Etienne Bar
 
Inscription : octobre 2002
Messages : 276
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2002
Messages : 276
Points : 230
Points : 230
Par défaut Créer une vue pour trier une requete UNION ?

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

Soit la requete suivante :

Code :
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 :
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 :
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 !
__________________
DRH Canal Historique
Informaticien Indépendant
http://www.etiennebar.com
Etienne Bar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2003, 10h54   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Par défaut Re: Créer une vue pour trier une requete UNION ?

tu peux faire une procedure stoquée sinon...
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2003, 09h40   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Toute requête quelle qu'elle soit peut possèder une clause de tri

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
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
ORDER  BY inc_nomprenom, num_tel
 
ou
 
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
ORDER BY 1, 2
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2003, 20h22   #4
Membre confirmé
 
Avatar de Etienne Bar
 
Inscription : octobre 2002
Messages : 276
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2002
Messages : 276
Points : 230
Points : 230
Dans ce cas c'est la seconde syntaxe qui fonctionne.

Merci, Frédéric (et, au passage, bravo pour ton site sur SQL qui m'apprend plein de trucs !)
__________________
DRH Canal Historique
Informaticien Indépendant
http://www.etiennebar.com
Etienne Bar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h42.


 
 
 
 
Partenaires

Hébergement Web