64 votes

Trouver des valeurs d'identification paires ou impaires

J'ai travaillé sur une requête aujourd'hui qui m'a demandé d'utiliser ce qui suit pour trouver tous les numéros d'identification impairs.

(ID % 2) <> 0

Quelqu'un peut me dire ce que ça fait ? Ça a marché, ce qui est génial, mais j'aimerais savoir pourquoi.

83voto

user667648 Points 5919

ID % 2 vérifie quel est le reste si vous divisez ID par 2. Si vous divisez un nombre pair par 2, le reste sera toujours égal à 0. Tout autre nombre (impair) donnera une valeur non nulle. C'est ce qui est vérifié.

27voto

anandharshan Points 3

Pour trouver le nombre pair, nous devons utiliser

select num from table where ( num % 2 ) = 0

9voto

Menuka Ishan Points 1144

Comme ci-dessous Doc spécifier

dividende % diviseur

Renvoie le reste d'un nombre divisé par un autre.

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/modulo-transact-sql#syntax

Par exemple

13 % 2 retour 1

La partie suivante est <> qui signifie "non égal".

Donc, ce que votre déclaration signifie est Le reste de l'ID quand il est divisé par 2 n'est pas égal à 0.

Faites attention car cela ne fonctionnera pas dans la base de données Oracle. La même expression sera comme ci-dessous.

MOD(ID, 2) <> 0

7voto

Erwin Brandstetter Points 110228

ID % 2 réduit tous les nombres entiers (les nombres monétaires et numériques sont également autorisés) à 0 et 1 de manière efficace.
Lire sur le opérateur modulo dans le manuel .

6voto

Saurabh Points 1871

Dans l'oracle,

select num from table where MOD (num, 2) = 0;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X