| From: | Pierre Couderc <pierre(at)couderc(dot)cc> | 
|---|---|
| To: | Jean-Paul Argudo <jean-paul(at)argudo(dot)org> | 
| Cc: | pgsql-fr-generale(at)postgresql(dot)org | 
| Subject: | Re: SQL pour trouver le premier libre? | 
| Date: | 2006-06-03 10:04:05 | 
| Message-ID: | 44815E95.8040908@couderc.cc | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-fr-generale | 
Oui, c'est très clair maintenant.
Le problème, c'est mes tenatatives de m'occuper de base de données sans 
être compétent...
Jean-Paul Argudo a écrit :
> Re,<
>
>   
>> Maintenant, je vais essayer de comprendre comment ça marche....
>>     
>
>   
>>> test2=> select a+1 as id_disponible from nombres except select a from
>>> nombres order by id_disponible limit 1;
>>>       
>
> C'est tout bête:
>
> * select a+1 as id_disponible from nombres
>
>   renvoie une liste des (a) augmentés de 1 qu'on renomme "id_disponible"
>   pour faire joli
>
> * select a from nombres
>
>   renvoie la liste des (a) telle qu'elle est dans la table
>
> * EXCEPT
>
>   fais l'ensemble des (a+1) moins l'ensemble des (a):
>   il reste donc tous les (a+1) qui n'existent pas dans les (a)
>
> * ORDER BY id_disponible
>
>   on classe les (a+1) qui n'existent pas encore dans (a)
>   du plus petit au plus grand
>
> * LIMIT 1
>
>   parmi cette liste classée, on ne prends que le 1er
>
> Au résultat:
>
>   On récupère le plus petit des (a+1) n'existant pas encore
>   parmis les (a)
>
>
> J'espère que c'est clair. La dernière fois que j'ai tenté d'expliquer
> des Maths à quelqu'un c'était au bac et ce ne fut pas très brillant :-))
>
>
> Cordialement,
>
>   
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alain Lucari | 2006-06-03 10:05:54 | Blocage pg_dump sur erreur | 
| Previous Message | Jean-Paul Argudo | 2006-06-03 09:58:49 | Re: SQL pour trouver le premier libre? |