Bonjour à toutes et à tous,
Petite intérrogation concernant le prédicat ALL :
A priori ce prédicat renvoie TRUE si toutes les lignes renvoyées remplissent la condition.
Mais si la jointure n'existe pas, elle renvoie tout de même TRUE alors que pour moi elle devrait renvoyer FALSE.
Démonstration par l'exemple :
Si j'enlève la condition "exists" alors la condition avec le "ALL" va me ramener les enregistrements qui n'ont pas de liaison avec la table TABLE1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select count(*) from TABLE1 TB1 where exists (select * from TABLE2 TB2 where TB2.TB1_ID=TB1.ID) and 2 = ALL (select ETATOBJET from TABLE2 TB2 where TB2.TB1_ID=TB1.ID)
Alors que 2 = all (select null car pas de liaison) devrait renvoyer FALSE ??
En vous remerciant d'avance.
Boutss
Partager