web-dev-qa-db-fra.com

Sélection des lignes où le reste (modulo) est 1 après division par 2?

Il y a une colonne dans les options qui contiennent un entier. Je souhaite sélectionner la ligne uniquement si cette valeur% 2 = 1.

Je sais que cela peut être fait en 2 requêtes mais est-il possible de le faire en 1?

51
Carlos

Prise en charge de MySQL, SQL Server, PostgreSQL, SQLite en utilisant le signe pourcentage comme module:

WHERE column % 2 = 1

Pour Oracle, vous devez utiliser la fonction MOD :

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

Au moins certaines versions de SQL (Oracle, Informix, DB2, ISO Standard) prennent en charge:

WHERE MOD(value, 2) = 1

MySQL prend en charge '%' comme opérateur de module:

WHERE value % 2 = 1
19
Jonathan Leffler

select * from table where value % 2 = 1 fonctionne très bien dans mysql.

1
einarmagnus

Note: Ignorez cette réponse, car je dois avoir mal compris la question.

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

La syntaxe exacte dépend de la saveur de SQL que vous utilisez.

1
David R Tribble