web-dev-qa-db-fra.com

Recherche de valeurs d'identités paires ou impaires

Je travaillais sur une requête aujourd'hui qui m'a obligé à utiliser ce qui suit pour trouver toutes les valeurs d'ID de nombre impair

(ID % 2) <> 0

Quelqu'un peut-il me dire ce que cela fait? Cela a fonctionné, ce qui est excellent, mais j'aimerais savoir pourquoi.

32
Phoenix

ID % 2 vérifie le reste si vous divisez l'ID par 2. Si vous divisez un nombre pair par 2, il restera toujours un 0. Tout autre nombre (impair) donnera une valeur non nulle. Quel est ce qui est à la recherche.

47
Dair

Pour trouver le nombre pair, nous devrions utiliser

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

ID % 2 réduit tous les nombres entiers (les valeurs monétaires et numériques sont également autorisées) à 0 et 1 efficacement.
Lisez à propos de l'opérateur modulo dans le manuel .

6
Erwin Brandstetter

Comme spécifié ci-dessous, spécifiez 

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 indique Non égal. 

Votre déclaration signifie donc Reste de l’ID lorsque divisé par 2, n’est pas égal à 0.

Attention, cela ne fonctionnera pas dans la base de données Oracle. Même expression sera comme ci-dessous.

MOD(ID, 2) <> 0
4
Menuka Ishan

Il prend l'identifiant, le divise par 2 et vérifie si le reste n'est pas nul; ce qui signifie, c'est une identification étrange.

2
Icarus

Dans Oracle,

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

dividende% diviseur

Le dividende est l'expression numérique à diviser. Le dividende doit être toute expression de type de données entier dans le serveur SQL.

Le diviseur est l'expression numérique permettant de diviser le dividende. Le diviseur doit être une expression de type de données entier sauf dans le serveur SQL. 

SELECT 15 % 2

Output
1

Dividende = 15

Diviseur = 2

Disons que vous vouliez interroger 

Interrogez une liste de noms de villes de la station avec des numéros d'identification identiques.

Structure de schéma pour STATION:

ID Number

CITY varchar

STATE varchar


select CITY from STATION as st where st.id % 2 = 0

Will fetch the even set of records 


In order to fetch the odd records with Id as odd number.

select CITY from STATION as st where st.id % 2 <> 0

La fonction% réduit la valeur à 0 ou 1

0
Neha Chopra

<> signifie pas égal. cependant, dans certaines versions de SQL, vous pouvez écrire! =

0
Madhurupa Moitra