找到偶数或奇数值

问题描述 投票:0回答:6

i今天正在研究一个查询,该查询需要我使用以下来查找所有奇数ID值

(ID % 2) <> 0

有人可以告诉我这在做什么吗?它奏效了,这很棒,但是我想知道为什么。

sql sql-server-2008
6个回答
102
投票

ID % 2

如果将ID除以2,则检查其余的是什么。如果将一个偶数数除以2,则始终将具有剩余的0。任何其他数字(奇数)将导致非零值。这就是检查的目的。
    


44
投票

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



16
投票

dividendend%divisor

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

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

例如

13%2返回1

next部分是

<>
表示不等式。

有您的陈述是什么意思 当ID除以2不等于0

小心,因为这不会在Oracle数据库中使用。同样的表达方式将如下所示。

MOD(ID, 2) <> 0

    

ID % 2

将所有整数(也允许货币和数字)减少到有效的0和1。 阅读手册中的

modulo操作员


7
投票

Llet说您想查询

Queryfrom div ID号码的城市名称列表。

车站的设施结构:

4
投票
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

它正在使用ID,将其除以2,然后检查其余的不是零;意思是,这是一个奇怪的ID。

<>

表示“不相等”。但是,在某些版本的SQL中,您可以编写

!=

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.