Bonjour,
Voila je voudrais avoir un nombre aléatoire compris entre 1000 et 9999
c'est à dire sur 4 positions
je n'ai trouvé que la fonction rand mais le nombre est compris entre 0 et 1
j'utilise l'SGBD sql server
Merci
Bonjour,
Voila je voudrais avoir un nombre aléatoire compris entre 1000 et 9999
c'est à dire sur 4 positions
je n'ai trouvé que la fonction rand mais le nombre est compris entre 0 et 1
j'utilise l'SGBD sql server
Merci
Voici comment proceder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 CREATE TABLE [NALEA] ( [Nombre] [int] NULL ) ON [PRIMARY] GO DECLARE @counter smallint SET @counter = 1000 WHILE @counter < 9999 BEGIN SET NOCOUNT ON INSERT INTO NALEA SELECT @counter * RAND(@counter) SET NOCOUNT OFF SET @counter = @counter + 1 END GO SELECT Nombre as [Nombre Aléatoire] FROM NALEA
Plus simple :
SELECT 10000*rand() ...;
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
En prenant compte de la fourchette :
SQLPro
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT (9000*rand())+1000...![]()
Vous avez raison, j'avais mal compris la question. Je pensais qu'il avais besion de toute la plage entre 1000 et 9999.
Bonjour à tous
Merci de m'avoir répondu
il se trouve que j'ai utilisé la fonction rand()
mais j'ai omis de préciser que mon nombre devait être entier sur 4 positions
Moi j'ai procédé comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 floor(10000*rand()) mais floor(1234.34) me donne 1234.0 et moi je veux obtenir 1234 le plus simplement possible.
C'est réglé
Merci à tous
Code : Sélectionner tout - Visualiser dans une fenêtre à part select SUBSTRING ( cast(FLOOR ((9000*rand())+1000)as varchar(50)) , 1 , 4 )
heuu, sauf erreur tu le cast en integer c'est même encore plus simple...
si je le cast en integer un nombre aléatoire du genre 0123 ne sera plus sur 4positions ce qui ne m'arrange pas
Partager