web-dev-qa-db-ja.com

2で割った後、剰余(モジュロ)が1である行を選択しますか?

オプションには整数を保持する列があります。その値%2 = 1の場合にのみ行を選択します。

これは2つのクエリで実行できますが、1つのクエリで実行できますか?

51
Carlos

モジュラスとしてパーセント記号を使用したMySQL、SQL Server、PostgreSQL、SQLiteサポート:

WHERE column % 2 = 1

Oracleの場合、 MOD関数 を使用する必要があります。

WHERE MOD(column, 2) = 1
77
OMG Ponies

少なくともいくつかのバージョンのSQL(Oracle、Informix、DB2、ISO標準)は以下をサポートします。

WHERE MOD(value, 2) = 1

MySQLは、モジュラス演算子として「%」をサポートしています。

WHERE value % 2 = 1
19

select * from table where value % 2 = 1はmysqlで正常に動作します。

1
einarmagnus

注:質問を誤解していたはずなので、この答えは無視してください。

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

正確な構文は、使用しているSQLの種類によって異なります。

1
David R Tribble