选择id为偶数的行

sol*_*hik 20 sql sql-server sql-function

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

SELECT * 
FROM Orders 
WHERE mod(OrderID,2) = 0;
Run Code Online (Sandbox Code Playgroud)

错误:

查询表达式'mod(OrderID,2)= 0'中的语法错误(缺少运算符).

Tim*_*sen 38

您没有使用Oracle,因此您应该使用模数运算符:

SELECT * FROM Orders where OrderID % 2 = 0;
Run Code Online (Sandbox Code Playgroud)

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

看看这个讨论你的问题的SO问题.


小智 6

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

在 SQL Server 中,试试这个:

 SELECT * FROM Orders where OrderID % 2 = 0;
Run Code Online (Sandbox Code Playgroud)


小智 6

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

SELECT * FROM Orders where OrderID % 2 != 0;///this is for odd numbers
Run Code Online (Sandbox Code Playgroud)


Aru*_*mon 5

我们可以使用的Sql Server %

select * from orders where ID % 2 = 0;
Run Code Online (Sandbox Code Playgroud)

这可以在Mysql和oracle中使用。使用 mod 函数比 %.

select * from orders where mod(ID,2) = 0
Run Code Online (Sandbox Code Playgroud)


小智 5

--这是针对oracle的

SELECT DISTINCT City FROM Station WHERE MOD(Id,2) = 0 ORDER BY City;
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个:

SELECT DISTINCT city FROM STATION WHERE ID%2=0 ORDER BY CITY;
Run Code Online (Sandbox Code Playgroud)