我今天正在处理一个查询,要求我使用以下内容查找所有奇数ID值
(ID % 2) <> 0
谁能告诉我这是做什么的?它很有效,但我很想知道原因。
答案 0 :(得分:51)
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中,您可以编写!=