Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[SQL] un petit pb pour réveiller tout le monde

4 réponses
Avatar
Roumegou
Soit une table PROVERBE comportant
PRV_ID identifiant auto
PRV_CONTENU texte du proverbe
PRV_AUTHOR auteur

Je veux lire un proverbe au hasard.

Cela doit être fait en sql. Le SGBD est mySQL mais je veux que cela fn
pour Oracle aussi.

Oui je sais en HF, c'était facile ;-)

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)

4 réponses

Avatar
Roumegou
Roumegou avait écrit le 28/05/2004 :
Soit une table PROVERBE comportant
PRV_ID identifiant auto
PRV_CONTENU texte du proverbe
PRV_AUTHOR auteur

Je veux lire un proverbe au hasard.

Cela doit être fait en sql. Le SGBD est mySQL mais je veux que cela fn pour
Oracle aussi.

Oui je sais en HF, c'était facile ;-)



Oh lui trop rapide, j'suis sur qu'il a posé la question alors qu'il
connaissait la réponse pour se faire mousser ;-)

select * from PROVERBE order by rand() limit 1;

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Gégé
Roumegou wrote:
Soit une table PROVERBE comportant
PRV_ID identifiant auto
PRV_CONTENU texte du proverbe
PRV_AUTHOR auteur

Je veux lire un proverbe au hasard.
Cela doit être fait en sql. Le SGBD est mySQL mais je veux que cela fn
pour Oracle aussi.


Un WHERE sur un PRV_ID retourné par Hasard() devrait faire l'affaire.

Oui je sais en HF, c'était facile ;-)


8O
Avatar
Gégé
>> Soit une table PROVERBE comportant
PRV_ID identifiant auto
PRV_CONTENU texte du proverbe
PRV_AUTHOR auteur

Je veux lire un proverbe au hasard.

Cela doit être fait en sql. Le SGBD est mySQL mais je veux que cela fn
pour Oracle aussi.


select * from PROVERBE order by rand() limit 1;



Marchera pas sous Oracle
Avatar
Roumegou
Dans son message précédent, Roumegou a écrit :

Oh lui trop rapide, j'suis sur qu'il a posé la question alors qu'il
connaissait la réponse pour se faire mousser ;-)

select * from PROVERBE order by rand() limit 1;


et le Oracle qui me manquait (c'est bien avec Oracle, c'est qu'on peux
tjrs faire plus compliqué !)

select *
from (select * from PROVERBE
order by mod(DBMS_RANDOM.Random,50)+50)
where rownum=1

quand à la réponse de Gégé
Un WHERE sur un PRV_ID retourné par Hasard() devrait faire l'affaire



je ne sais pas mes bornes sur le PRV_ID.
A la limite après un : select max(PRV_ID) from PROVERBE; mais cela fait
deux requetes.

Je préfère ma solution avec les order

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)