查找偶数或奇数ID值

时间:2011-11-11 22:15:09

标签: sql sql-server-2008

我今天正在处理一个查询,要求我使用以下内容查找所有奇数ID值

(ID % 2) <> 0

谁能告诉我这是做什么的?它很有效,但我很想知道原因。

8 个答案:

答案 0 :(得分:51)

如果你将ID除以2,

ID % 2正在检查剩余部分是什么。如果你将偶数除以2,它的余数总是为0.任何其他数字(奇数)将导致非零价值。这是检查的内容。

答案 1 :(得分:17)

为了找到偶数,我们应该使用

select num from table where ( num % 2 ) = 0

答案 2 :(得分:6)

ID % 2将所有整数(货币和数字也允许)数字有效地减少为0和1 阅读about the modulo operator in the manual

答案 3 :(得分:5)

如下文指定

  

股息%除数

     

返回一个数字的余数除以另一个数字。

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/modulo-transact-sql#syntax

例如

  

13%2返回1

下一部分是<>,表示不等于。

因此,您的陈述意味着什么 ID除以2而不等于0

时的余数

要小心,因为这在Oracle数据库中不起作用。相同的表达式如下所示。

MOD(ID, 2) <> 0

答案 4 :(得分:2)

它取ID,除以2并检查余数是否为零;意思是,它是一个奇怪的ID。

答案 5 :(得分:2)

在oracle中,

select num from table where MOD (num, 2) = 0;

答案 6 :(得分:1)

股息%除数

Dividend是要除的数字表达式。 Dividend必须是sql server中任何整数数据类型的表达式。

除数是除以红利的数字表达式。除非在sql server中,否则除数必须是整数数据类型的表达式。

SELECT 15 % 2

Output
1

股息= 15

除数= 2

假设你想查询

仅使用ID号查询STATION中的CITY名称列表。

STATION的架构结构:

ID Number

CITY varchar

STATE varchar


select CITY from STATION as st where st.id % 2 = 0

Will fetch the even set of records 


In order to fetch the odd records with Id as odd number.

select CITY from STATION as st where st.id % 2 <> 0

%函数将值减少为0或1

答案 7 :(得分:0)

&LT;&GT;意思是不平等。但是,在某些版本的SQL中,您可以编写!=