i今天正在研究一个查询,该查询需要我使用以下来查找所有奇数ID值
(ID % 2) <> 0
有人可以告诉我这在做什么吗?它奏效了,这很棒,但是我想知道为什么。
ID % 2
如果将ID除以2,则检查其余的是什么。如果将一个偶数数除以2,则始终将具有剩余的0。任何其他数字(奇数)将导致非零值。这就是检查的目的。
select num from table where ( num % 2 ) = 0
dividendend%divisor
返回一个数字的其余部分除以另一个数字。https://learn.microsoft.com/en-us/sql/t-sql/language-elements/modulo-transact-sql#syntax例如
next部分是
<>
表示不等式。小心,因为这不会在Oracle数据库中使用。同样的表达方式将如下所示。有您的陈述是什么意思 当ID除以2不等于0
时
MOD(ID, 2) <> 0
ID % 2
将所有整数(也允许货币和数字)减少到有效的0和1。 阅读手册中的
modulo操作员。
select num from table where MOD (num, 2) = 0;
SELECT 15 % 2
Output
1
dividendend =15Llet说您想查询
Queryfrom div ID号码的城市名称列表。车站的设施结构:
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中,您可以编写
!=
。