选择除以2余数为1的行?

59

在选项中有一个列保存着整数。我想仅选择当该值%2=1的行。

我知道这可以用两个查询完成,但是否可能只用一个查询完成呢?

4个回答

87

MySQL、SQL Server、PostgreSQL 和 SQLite 支持使用百分号作为模运算符:

WHERE column % 2 = 1

对于Oracle数据库,您需要使用MOD函数

WHERE MOD(column, 2) = 1

20

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

WHERE MOD(value, 2) = 1

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

WHERE value % 2 = 1

3
SQL Anywhere使用MOD()函数;Sybase ASE使用%运算符。 - pascal

2

注意:请忽略这个答案,因为我可能误解了问题。

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

具体的语法取决于您使用的SQL版本。


len?OP没有提到字符串或varchar。 - Reversed Engineer

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接