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: Comment faire un cast de varchar en integer? |
Date: | 2006-04-11 09:41:37 |
Message-ID: | 443B79D1.6020605@couderc.cc |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Version 7.4.7
Merci
Mais je pense que j'ai trouvé la parade avec
code_postal::text::integer
Maintenant, je bute sur quelques codes postaux non français non
numériques, que je réussis à éliminer
grace à un expression régulière : j'ai essayé :
SELECT "Nom","Adresse","Code Postal" FROM "Entreprises" WHERE (( "Code
Postal" ~ '^ *[0-9]+ *$') ;
Et ça marche très bien, mais quand je rajoute une condition de condition
de code postal
SELECT "Nom","Adresse","Code Postal" FROM "Entreprises" WHERE (( "Code
Postal" ~ '^ *[0-9]+ *$') AND ("Code Postal"::text::int>0 );
il me trouve un erreur dans cette bonne ville des Pennnes Mirabaux
(13710):
Description: ERREUR: Syntaxe en entrée invalide pour l'entier :
"13170 "
Number: -2147467259
Routine: pgAdmin II:frmSQLInput.cmdExecute_Click
Qu'a-t-il contre les Pennes Mirabaux? D'autant que si je remplace le
[0-9]+ par [2-9]+ tout est bon...
Mercci
PC
Jean-Paul Argudo a écrit :
> Pierre Couderc wrote:
>
>> Je chreche à convertir bêtement mon code postral qui est déclaré en
>> varchar en entier?
>>
>> SELECT "Nom","Adresse","Code Postal" FROM "Entreprises" WHERE
>> CAST("Code Postal" AS INTEGER)/1000=12;
>>
>
>
>
>> Mais il me le refuuse absolument.
>>
>
> Quel est le message d'erreur? quelle version de PG ?.. etc
>
>
>> Y-a-t-il une asctuce?
>>
>
> Rien de particulier. Chez moi, les deux écritures fonctionnent:
>
>
> test2=> select nom, code_postal, code_postal::integer from entreprise
> where code_postal::integer/1000=78;
> nom | code_postal | code_postal
> --------+-------------+-------------
> dalibo | 78220 | 78220
> (1 row)
>
> test2=> select nom, code_postal, code_postal::integer from entreprise
> where CAST(code_postal AS INTEGER)/1000=78;
> nom | code_postal | code_postal
> --------+-------------+-------------
> dalibo | 78220 | 78220
> (1 row)
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Jean-Paul Argudo | 2006-04-11 10:06:55 | Re: Comment faire un cast de varchar en integer? |
Previous Message | Jean-Paul Argudo | 2006-04-11 08:54:55 | Re: Comment faire un cast de varchar en integer? |