选择除以 2 后余数(模)为 1 的行?

Posted

技术标签:

【中文标题】选择除以 2 后余数(模)为 1 的行?【英文标题】:Selecting rows where remainder (modulo) is 1 after division by 2? 【发布时间】:2011-04-14 23:45:41 【问题描述】:

选项中有一个包含整数的列。仅当该值 % 2 = 1 时,我才想选择该行。

我知道这可以在 2 个查询中完成,但是否可以在 1 个查询中完成?

【问题讨论】:

【参考方案1】:

mysql、SQL Server、PostgreSQL、SQLite 支持使用百分号作为模数:

WHERE column % 2 = 1

对于 Oracle,您必须使用 MOD function:

WHERE MOD(column, 2) = 1

【讨论】:

【参考方案2】:

至少支持某些版本的 SQL(Oracle、Informix、DB2、ISO 标准):

WHERE MOD(value, 2) = 1

MySQL 支持 '%' 作为模数运算符:

WHERE value % 2 = 1

【讨论】:

MOD() 用于 SQL Anywhere; Sybase ASE 的百分比。【参考方案3】:

注意: 忽略这个答案,因为我一定误解了这个问题。

select *
  from Table
  where len(ColName) mod 2 = 1

确切的语法取决于您使用的 SQL 风格。

【讨论】:

伦? OP没有提到字符串或varchar【参考方案4】:

select * from table where value % 2 = 1 在 mysql 中运行良好。

【讨论】:

以上是关于选择除以 2 后余数(模)为 1 的行?的主要内容,如果未能解决你的问题,请参考以下文章

java中取余运算符 (%)

1、1、2、3、5、8、13.....数列 第2006位除以5的余数是多少?

手撕代码:判断二进制串除以3的余数

数学 中mod是啥意思

模乘法逆

斐波那契除以10007取余数