Requête pour afficher une table de vérité d'une expression booléenne à 3 variables :
;WITH cteData AS
(SELECT 0 AS A, 0 AS B, 0 AS C
UNION ALL SELECT 0,0,1
UNION ALL SELECT 0,1,0
UNION ALL SELECT 0,1,1
UNION ALL SELECT 1,0,0
UNION ALL SELECT 1,0,1
UNION ALL SELECT 1,1,0
UNION ALL SELECT 1,1,1
)
SELECT cteData.*,
CASE WHEN
(A=1) OR (B=1) AND (C=1)
THEN 'True' ELSE 'False' END AS Result
FROM cteData
Résultats pour (A=1) OR (B=1) AND (C=1)
:
A B C Result
0 0 0 False
0 0 1 False
0 1 0 False
0 1 1 True
1 0 0 True
1 0 1 True
1 1 0 True
1 1 1 True
Résultats pour (A=1) OR ( (B=1) AND (C=1) )
sont les mêmes.
Résultats pour ( (A=1) OR (B=1) ) AND (C=1)
:
A B C Result
0 0 0 False
0 0 1 False
0 1 0 False
0 1 1 True
1 0 0 False
1 0 1 True
1 1 0 False
1 1 1 True
7 votes
Essayez : T T F. (T ou T) et F. T ou (T et F). Le lecteur du code doit être capable de voir clairement l'intention de l'auteur du code. Et le rédacteur doit être sûr que la machine fait ce qu'il a voulu. Les parenthèses alignent les trois : le lecteur, le rédacteur et la machine. :)