Нахождение четных или нечетных значений идентификаторов - PullRequest
42 голосов
/ 12 ноября 2011

Сегодня я работал над запросом, который требовал от меня использования следующего, чтобы найти все значения идентификатора нечетного числа

(ID % 2) <> 0

Может кто-нибудь сказать мне, что это делает?Это сработало, и это здорово, но я хотел бы знать, почему.

Ответы [ 8 ]

54 голосов
/ 12 ноября 2011

ID % 2 проверяет, что является остатком, если вы разделите ID на 2. Если вы разделите четное число на 2, у него всегда будет остаток от 0. Любое другое число (нечетное) приведет к ненулевому значению , Что проверяет.

18 голосов
/ 30 августа 2016

Для нахождения четного числа мы должны использовать

select num from table where ( num % 2 ) = 0
6 голосов
/ 21 февраля 2018

Как указано ниже, укажите

дивиденд%%

Возвращает остаток от одного числа, деленного на другое.

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

Например

13% 2 возврат 1

Следующая часть - <>, которая обозначает Не равно.

Для чего это означает Остаток идентификатора, когда он делится на 2, не равен 0

Будьте осторожны, потому что это не сработает в базе данных Oracle. То же выражение будет как ниже.

MOD(ID, 2) <> 0
6 голосов
/ 12 ноября 2011

ID % 2 уменьшает все целые числа (допускаются также денежные и числовые) до 0 и 1.
Прочитайте об операторе по модулю в руководстве .

2 голосов
/ 28 июля 2017

В оракуле,

select num from table where MOD (num, 2) = 0;
2 голосов
/ 12 ноября 2011

Он берет идентификатор, делит его на 2 и проверяет, не равен ли остаток нулю;это странный идентификатор.

1 голос
/ 01 августа 2017

дивиденд% делитель

Дивиденд - это числовое выражение для деления.Дивиденд должен быть любым выражением целочисленного типа данных на сервере sql.

Делитель - это числовое выражение для деления дивиденда.Делитель должен быть выражением целочисленного типа данных, кроме как на сервере SQL.

SELECT 15 % 2

Output
1

Dividend = 15

Divisor = 2

Допустим, вы хотите запросить

Запрос списка названий CITY из STATION с четным IDтолько цифры.

Структура схемы для 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

% функция уменьшает значение до 0 или 1

0 голосов
/ 30 декабря 2017

<> означает не равно. однако в некоторых версиях SQL вы можете написать! =

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...