PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Tester si une chaine de caractère est numérique

Technique - général | Tester si une chaine de caractère est numérique

Par nougasplou le 10/10/2005 - 16:35

Je cherche à savoir s'il y a un moyen de tester une chaine de caractère (varchar) pour savoir si elle contient un nombre ou du texte. peut-être une fonction en plpgsql ou autre.

Merci d'avance pour vos réponses

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Bonjour pour tester un var

Christophe Chauvet/ = 11 Octobre, 2005 - 10:57

Bonjour

pour tester un varchar j'utilise ceci:

SELECT * FROM ma_table WHERE mon_champ NOT IN ('0','1','2','3','4','5','6','7','8','9')

pour un nombre je remplace le NOT IN par IN

SELECT * FROM ma_table WHERE mon_champ IN ('0','1','2','3','4','5','6','7','8','9')

Attention avec les espaces dans les nombres, faire un trim() si necessaire

Cordialement

Christophe Chauvet


beaucoup mieux select * f

sparky/ = 11 Octobre, 2005 - 11:22

beaucoup mieux

select * from ma_table
where mon_champ ~ '^[0-9]*$' ;-)

plus d'info RegularExpressionIntro et ici Manuel postgresql


ok merci ca marche mais je tr

nougasplou/ = 11 Octobre, 2005 - 11:58

ok merci ca marche mais je travaille avec des nombres à virgules donc je pense que le problème est un peu plus compliqué...


je me répond : faut mettre

nougasplou/ = 11 Octobre, 2005 - 15:59

je me répond :
faut mettre '^[.,0-9]*$'

@ +


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.