#1 Wed 05 January 2011 14:12
- batsss
- Participant occasionnel
- Date d'inscription: 22 Dec 2010
- Messages: 31
extraite décimale ss postgres
Bonjour
je cherche à extraire juste les décimales d'une colonne (ex: 184.652593 je ne veux extraire ds une nouvelle colonne que 652593)
ce q j'ai ce q je veux obtenir
184.652593 652593
184.652593 652593
184.652604 652604
184.652627 652627
184.652639 652639
merci bcp
Hors ligne
#2 Wed 05 January 2011 14:28
Re: extraite décimale ss postgres
bonjour,
Code:
SELECT substring('184.652593' from '[0-9]+$');
Il faudra trouver un moyen de convertir le décimal en string.
ou :
Code:
SELECT mod(184.652593,1);
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Wed 05 January 2011 14:40
- batsss
- Participant occasionnel
- Date d'inscription: 22 Dec 2010
- Messages: 31
Re: extraite décimale ss postgres
merci
mais comment faire pour lorsque j'ai 5 millions de lignes à faire?? y a t il moyen de faire une formaule pour ttes mes lignes?
Hors ligne
#4 Wed 05 January 2011 16:09
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: extraite décimale ss postgres
merci
mais comment faire pour lorsque j'ai 5 millions de lignes à faire?? y a t il moyen de faire une formaule pour ttes mes lignes?
Une requete update.
Je reprends la methode d'Yves: table matable, colonnes col1 et col2 (col1 contient les chiffres avec decimales, col2 la partie decimale):
Code:
update matable set col2 = substring(col1::text from '[0-9]+$')::int;
J'utilise ici col1::text pour convertir la colonne col1 du format numerique au format texte
de meme, le resultat de substring est converti en int, si c'est bien le type de la colonne 2.
A ajuster, donc, en fonction de votre schéma.
Nicolas
Hors ligne
#5 Wed 05 January 2011 18:27
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: extraite décimale ss postgres
Bonjour,
batsss
Merci de ne pas utiliser systématiquement des abréviations, cela nuit grandement à la lisibilité !
Vous avez de la chance que je ne sois pas tombé sur votre message avant ceux qui vous ont donné une réponse
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#6 Thu 06 January 2011 00:22
Re: extraite décimale ss postgres
Bonsoir,
A propos de
SELECT substring('184.652593' from '[0-9]+$');
Une solution alternative peut être pour un type caractère
Code:
SELECT trunc('184.652593'::numeric);
et pour un type numérique
Code:
SELECT trunc(184.652593);
@batsss
Pour comprendre les solutions "toutes cuites" déjà apportées par les précédents contributeurs sur les manipulations de nombre et de texte, allez voir ces deux pages de la documentation officielle de PostgreSQL
http://docs.postgresql.fr/8.4/functions-math.html et http://docs.postgresql.fr/8.4/functions-string.html
Cordialement
ThomasG
Hors ligne
#7 Thu 06 January 2011 09:05
Re: extraite décimale ss postgres
ThomasG,
Sauf erreur de ma part trunc() prend la partie entière, pas décimal.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne