SQL Server 选择ID为偶数的行

kqhtkvqz  于 2023-02-03  发布在  其他
关注(0)|答案(9)|浏览(145)

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

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

错误:
查询表达式"mod(OrderID,2)= 0"中存在语法错误(缺少运算符)。

mwkjh3gx

mwkjh3gx1#

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

SELECT * FROM Orders where OrderID % 2 = 0;

MOD()函数存在于Oracle中,这是您混淆的根源。
请看this SO question,其中讨论了您的问题。

gwo2fgha

gwo2fgha2#

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

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

mrphzbgm3#

我们可以使用的SQL Server %

select * from orders where ID % 2 = 0;

这在Mysql和oracle中都可以使用,使用mod函数比%更有效果。

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

xnifntxz4#

MOD()函数存在于Oracle和MySQL中,但不存在于SQL Server中。
在SQL Server中,请尝试以下操作:

SELECT * FROM Orders where OrderID % 2 = 0;
pnwntuvh

pnwntuvh5#

--这是Oracle

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

wtlkbnrh6#

试试这个:

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

iswrvxsc7#

对于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

m0rkklqb

m0rkklqb8#

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

n3h0vuf29#

在SQL中,所有这些选项都可用于MOD
SELECT * FROM CITY WHERE MOD(ID,2) = 0 ORDER BY CITY;

SELECT * FROM CITY WHERE ID % 2 = 0 ORDER BY CITY;

SELECT * FROM CITY WHERE ID MOD 2 = 0 ORDER BY CITY;
希望能有所帮助!

相关问题