Выберите строки с идентификатором, имеющим четное число
Я прохожу простой запрос, когда я ищу конкретные строки, где 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