Ответ 1
ID % 2
проверяет, что представляет собой остаток, если вы разделите ID на 2. Если вы разделите четное число на 2, оно всегда будет содержать остаток 0. Любое другое число (нечетное) приведет к ненулевому значению, Это проверка.
Сегодня я работал над запросом, который потребовал от меня использовать следующие значения для поиска значений нечетных номеров ID
(ID % 2) <> 0
Может ли кто-нибудь сказать мне, что это делает? Это сработало, и это здорово, но я хотел бы знать, почему.
ID % 2
проверяет, что представляет собой остаток, если вы разделите ID на 2. Если вы разделите четное число на 2, оно всегда будет содержать остаток 0. Любое другое число (нечетное) приведет к ненулевому значению, Это проверка.
Для нахождения четного числа мы должны использовать
select num from table where ( num % 2 ) = 0
ID % 2
уменьшает все целые числа (денежные и числовые тоже допускаются) числа до 0 и 1 эффективно.
Прочитайте о модульном операторе в руководстве.
Он берет идентификатор, деля его на 2 и проверяя, не остался ли остаток; значение, это нечетный идентификатор.
дивиденд% divisor
Дивиденд - это числовое выражение для деления. Дивидендом должно быть любое выражение целочисленного типа данных в сервере sql.
Divisor - это числовое выражение для деления дивиденда. Divisor должен быть выражением целочисленного типа данных, кроме сервера sql.
SELECT 15 % 2
Output
1
Дивиденд = 15
Divisor = 2
Скажем, вы хотели запросить
Запросить список имен CITY от STATION только с четными идентификационными номерами.
Структура схемы для 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
В оракуле
select num from table where MOD (num, 2) = 0;
< > означает не равный. однако в некоторых версиях SQL вы можете написать!=