Select if exists => if exist : get value, if not: set value

Fermé
JamieMacUloth Messages postés 43 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 6 juin 2022 - 4 juil. 2020 à 12:30
jee pee Messages postés 39650 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 - 4 juil. 2020 à 13:46
Bonjour,
Je n'ai pas les bases en SQL et je galère sur un pb:
J'ai une table A TableA avec 2 champs:
LOGICAL_CONNECTOR_ID (entier): 1, 2, 3, 4...
LOGICAL_CONNECTOR (Text): "tutu","toto","titi","tata"....
J'ai une table B TableB avec 2 champs:
LOGICAL_CONNECTOR_ID: 2, 1 (par exemple)
LOGICAL_CONNECTOR_NB: 7, 8 (par exemple).
J'aurais besoin d'une requête qui sélectionne, pour tous les LOGICAL_CONNECTOR_ID de la tableA, le LOGICAL_CONNECTOR_NB de la tableB SI IL EXISTE. Par exemple pour le 1, il existe et sa valeur est 8. Et SI IL N'EXISTE PAS, je veux forcer sa valeur à 0. Par exemple pour 3, il n'existe pas et je veux forcer à renvoyer 0.
J'ai vu des exemples comme:
Declare @CategoryID as int
SET @CategoryID = CASE WHEN EXISTS(SELECT 1
FROM Categories
WHERE Categoryname = @CategoryName)
THEN 1 ELSE 0
END
Mais j'arrive pas à l'adapter à mon problème.
Merci d'avance pour votre aide

1 réponse

jee pee Messages postés 39650 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 9 238
4 juil. 2020 à 13:46
Bonjour,

Et une jointure externe ?
select A.LOGICAL_CONNECTOR_ID, A.LOGICAL_CONNECTOR, IFNULL(B.LOGICAL_CONNECTOR_NB,0)
from tableA as A
left outer join tableB as B ON A.LOGICAL_CONNECTOR_ID = B.LOGICAL_CONNECTOR_ID


0