|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : mars 2002 Messages : 46 ![]() |
Bonjour,
Comment faire un select sur plusieurs colonnes en utilisant un CASE WHEN EXISTS ? Si ma ligne d'enregistrement existe alors je fais un select sur plusieurs colonnes de cette ligne (sans avoir à répéter x fois le CASE WHEN EXISTS pour chaque colonne à afficher). Apparemment, en utilisant un CASE WHEN EXISTS je ne peux afficher que le select d'une colonne à la fois ... Comment obtenir les 3 colonnes en testant une seule fois l'existance de la ligne d'enregistrement ? Merci pour votre aide. LOPEZ |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Donnez nous un cas précis avec des tables sous forme CREATE et des données sous forme INSERT.
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 * * * * * |
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : mars 2002 Messages : 46 ![]() |
Bonjour et merci pour votre aide.
je joint donc ci-dessous un script contenant les tables et données. La question concerne la vue se trouvant dans le script. Je dois, ramener une adresse, longitude et latitude selon les critères suivants : 1=> adresse, Latitude et longitude provenant de Société si existante sinon : 2=> adresse, Latitude et longitude provenant de Contact si existante sinon : 3=> adresse, Latitude et longitude provenant de Société via Opportunité si existante sinon : 4=> adresse, Latitude et longitude provenant de Contact via Opportunité. Je dois donc tester si il y a une adresse en 1, si c'est le cas les test 2,3 et 4 ne servent à rien. Je peux arrêter le CASE et récupérer Adresse, Longitude et Latitude en 1, sinon je passe en 2 et ainsi dessuite ... Dans ce cas précis si mon CASE WHEN EXISTS me renvoie vrai j'aimerai pouvoir extraire Adresse, Longitude et Latitude sans avoir à tester pour les 3 avec des CASE WHEN EXISTS pour chacun ... Voilà, donc ma question est là, puis-je éviter de faire 3 CASE WHEN EXISTS pour remonter ces 3 valeurs qui viennent de la même ligne ? Merci pour l'aide. LOPEZ |
|
|
00
|
|
|
#4 | ||
|
Membre émérite
![]() Serge RUQUETConsultant informatique Inscription : août 2006 Messages : 669 ![]() |
a mon avis, le plus simple, mais pas le plus rapide, c'est de faire un COALESCE
Code :
cette requête retournera a.adresse s'il elle est non nulle (donc si elle existe) sinon b.adresse s'il elle est non nulle (donc si elle existe) sinon c.adresse s'il elle est non nulle (donc si elle existe) sinon null
__________________
Errare humanum est, perseverare diabolicum (Sénèque) |
||
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : mars 2002 Messages : 46 ![]() |
Bonjour,
Merci mais la problématique demeure la même. j'y arrive déjà avec des CASE mais cela ne me permet de remonter que l'adresse, pour remonter la Longitude et la Latitude qui sont sur la même ligne je suis obligé d'itérer l'opération 3 fois. C'est ce que je veux éviter, c'est à dire, ci je trouve une adresse, j'aimerai récupérer sa latitude et Longitude en une seule fois. Merci pour ton aide. LOPEZ |
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Code :
__________________
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 * * * * * |
||
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : mars 2002 Messages : 46 ![]() |
Merci beaucoup à vous deux.
Désolé pour ma réponse précédente... cette solution me semble parfaite. Bonne journée et longue fin de semaine |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com