Выберите строки с идентификатором, имеющим четное число

Я прохожу простой запрос, когда я ищу конкретные строки, где OrderID - четное число

SELECT * 
FROM Orders 
WHERE mod(OrderID,2) = 0;

Ошибка:

Синтаксическая ошибка (отсутствующий оператор) в выражении запроса 'mod (OrderID, 2) = 0'.

Ответы

Ответ 1

Вы не используете Oracle, поэтому вы должны использовать оператор модуля:

SELECT * FROM Orders where OrderID % 2 = 0;

Функция MOD() существует в Oracle, которая является источником вашей путаницы.

Посмотрите на этот вопрос, который обсуждает вашу проблему.

Ответ 2

SELECT * FROM Orders where OrderID % 2 = 0;///this is for even numbers

SELECT * FROM Orders where OrderID % 2 != 0;///this is for odd numbers

Ответ 3

Функция MOD() существует как в Oracle, так и в MySQL, но не в SQL Server.

В SQL Server попробуйте следующее:

 SELECT * FROM Orders where OrderID % 2 = 0;

Ответ 4

--This для оракула

SELECT DISTINCT City FROM Station WHERE MOD(Id,2) = 0 ORDER BY City;

Ответ 5

SELECT * FROM ( SELECT *, Row_Number() 
OVER(ORDER BY country_gid) AS sdfg  FROM eka_mst_tcountry ) t 
WHERE t.country_gid % 2 = 0 

Ответ 6

Sql Server мы можем использовать%

select * from orders where ID % 2 = 0;

Это может быть использовано как в Mysql, так и в Oracle. Лучше использовать функцию мода, чем%.

select * from orders where mod(ID,2) = 0