选择除以 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 的行?的主要内容,如果未能解决你的问题,请参考以下文章