Passer au contenu principal
  • numbers() – Renvoie une table infinie avec une seule colonne number (UInt64) contenant des entiers en ordre croissant, à partir de 0. Utilisez LIMIT (et éventuellement OFFSET) pour limiter le nombre de lignes.
  • numbers(N) – Renvoie une table avec une seule colonne number (UInt64) contenant des entiers de 0 à N - 1.
  • numbers(N, M) – Renvoie une table avec une seule colonne number (UInt64) contenant M entiers allant de N à N + M - 1.
  • numbers(N, M, S) – Renvoie une table avec une seule colonne number (UInt64) contenant des valeurs dans [N, N + M) avec un pas de S (environ M / S lignes, arrondi à l’entier supérieur). S doit être >= 1.
Cette fonction est similaire à la table système system.numbers. Elle peut être utilisée pour les tests et pour générer des valeurs consécutives. Les requêtes suivantes sont équivalentes :
Les requêtes suivantes sont également équivalentes :
Les requêtes suivantes sont également équivalentes :

Exemples

Les 10 premiers nombres.
Générez une séquence de dates du 2010-01-01 au 2010-12-31.
Trouvez le premier UInt64 >= 10^15 pour lequel sipHash64(number) se termine par 20 bits à zéro.

Remarques

  • Pour des raisons de performances, si vous savez de combien de lignes vous avez besoin, privilégiez les formes bornées (numbers(N), numbers(N, M[, S])) à numbers() / system.numbers, qui ne sont pas bornés.
  • Pour une génération parallèle, utilisez numbers_mt(...) ou la table system.numbers_mt. Notez que les résultats peuvent être renvoyés dans n’importe quel ordre.
Dernière modification le 25 juin 2026