Les parenthèses SQL utilisent dans une clause OR
Me demandais si quelqu'un allait savoir pourquoi utilisons-nous les parenthèses dans ce SQL:
Ainsi, le format va comme suit:
Nom,l'emplacement et le département de service des employés dont le nom commence par A ou B. (Une traduction approximative en français).
J'ai répondu de la manière suivante:
SELECT service.nom_serv, localite.ville, localite.departemen
FROM service, localite, employe
WHERE service.code_loc=localite.code_loc
AND employe.service=service.code_serv
AND ((employe.nom LIKE 'A%') OR (employe.nom LIKE 'B%'))
Fondamentalement, où le dernier souci de la OÙ la, ne pourrais-je pas simplement faire sans la parenthèse afin d'avoir le SQL select pour moi employés avec leur nom qui commence soit avec Un a ou un B? Quelle est la différence de positionnement une parenthèse dans cette façon de faire? Et ahy est-il un double utilisation des parenthèses? Ou est-il en priorité OU dans le dernier alinéa, depuis une ET est le précède?
source d'informationauteur angela
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à la La Priorité De L'Opérateur dans SQL Server (Vous n'avez pas précisé, mais j'imagine que c'est la même pour tous les SGBDR). Ce que cela signifie, c'est que ANDs (sans parenthèses) sont évaluées avant les Rup.
Donc, dans votre cas particulier, sans les parenthèses, les conditions sont les suivantes:
employe.service=service.code_serv AND employe.nom LIKE 'A%'
OU
employe.nom LIKE 'B%'
Vous pouvez l'utiliser pour spécifier le regroupement de la clause, pas de priorité. SQL ne vous permet pas de spécifier la priorité que l'optimiseur de créer le meilleur priorité pour vous.
Prendra de la
OR
conditions en une seule instruction. Ainsi, si l'un est vrai, alors laAND
est vrai. L'intérieur des parenthèses ne sont pas nécessaires, mais aussi d'aider à la visualisation de la séparation.Sans l'extérieur des parenthèses, il serait de laisser quoi que ce soit avec la clause finale en tant que bien.
Il y a des parenthèses. La règle en mathématiques est d'ajouter de la parenthèse afin de clarifier la logique. Dans ce cas, si vous supprimez tous les parenthèses, vous aurez la mauvaise réponse. Ce que vous avez est une, ET (b) OU (c)). Suppression de tous les parenthèses ne s' (a OU b) ET (a OU c) (a ET b) OU c qui est incorrect.
Je suppose que le *s sont là pour souligner quelque chose, je suis donc de les ignorer pour l'instant. N'hésitez pas à corriger moi si je me trompe.
Je suggère de faire comme ceci:
... ou quelque chose de similaire.
Je m'en excuse, mais la principale question que vous vous posez à propos de la parenthèse n'est pas très clair pour moi.