56

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

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

4

4 回答 4

83

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

WHERE column % 2 = 1

对于 Oracle,您必须使用MOD 功能

WHERE MOD(column, 2) = 1
于 2010-09-21T02:51:11.927 回答
19

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

WHERE MOD(value, 2) = 1

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

WHERE value % 2 = 1
于 2010-09-21T02:43:58.000 回答
2

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

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

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

于 2010-09-21T02:49:09.290 回答
1

select * from table where value % 2 = 1在mysql中工作正常。

于 2010-09-21T02:45:57.783 回答