Select id 为偶数的行

Select Rows with id having even number

我正在传递一个简单的查询,我在其中搜索 OrderID 是偶数的特定行

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

错误:

Syntax error (missing operator) in query expression 'mod(OrderID,2) = 0'.

您没有使用 Oracle,所以您应该使用取模运算符:

SELECT * FROM Orders where OrderID % 2 = 0;

Oracle 中存在 MOD() 函数,这是您混淆的根源。

查看讨论您的问题的 this SO question

MOD() 函数在 Oracle 和 MySQL 中都存在,但在 SQL Server 中不存在。

在 SQL 服务器中,试试这个:

 SELECT * FROM Orders where OrderID % 2 = 0;
SELECT * FROM ( SELECT *, Row_Number() 
OVER(ORDER BY country_gid) AS sdfg  FROM eka_mst_tcountry ) t 
WHERE t.country_gid % 2 = 0 
SELECT * FROM Orders where OrderID % 2 = 0;///this is for even numbers

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

Sql 我们可以使用的服务器 %

select * from orders where ID % 2 = 0;

这可以在 Mysql 和 oracle 中使用。 使用 mod 功能更亲切 %.

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

--这是针对oracle的

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

试试这个:

SELECT DISTINCT city FROM STATION WHERE ID%2=0 ORDER BY CITY;

对于 SQL 服务器:

SELECT * FROM Orders where OrderID % 2 = 0; //这是偶数

SELECT * FROM Orders where OrderID % 2 != 0; //这是奇数

对于 Oracle 和 MySQL,您必须使用 MOD 函数:

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