SQL - select en format texte d'un champ numér

Résolu/Fermé
g1blem
Messages postés
62
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
28 août 2009
- 18 juin 2009 à 10:38
g1blem
Messages postés
62
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
28 août 2009
- 18 juin 2009 à 17:55
Bonjour,

j'utilise la requète suivante dans un progiciel qui se charge de générer un fichier au format excel (sans possibilité de changer le format généré)

Select CLIENT.nom, CLIENT.telprof,
From patients

Le numéro de téléphone est intégré comme une valeur numérique et donc le premier chiffre étant 0, celui-ci est supprimer car correspondant à un champ numérique

existe t'il un moyen de forcer le select à définir ce champ comme étant du texte,

ou un autre moyen qui me permettrait de ne pas"perdre" le premier 0

merci beaucoup pour votre aide

bonne journée

g1blem

11 réponses

giheller
Messages postés
1845
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
9 juin 2022
139
18 juin 2009 à 11:36
Bonjour,

si $numtel contient le n°

on peut faire :
$numtel=str_pad($numtel, 10, "0", STR_PAD_LEFT);
------------------------------------------------
J-L
0
g1blem
Messages postés
62
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
28 août 2009
1
18 juin 2009 à 14:23
Bonjour giheller et merci pour la réponse,

j'ai testé ça :

PATIENTS.pat_tel=str_pad(PATIENTS.pat_tel, 10, "0", STR_PAD_LEFT)
Select PATIENTS.pat_tel
From patients

et le progiciel m'envoi le message :

nous n'autorisons que des requètes de séléction

Y a t'il moyen de forcer le format directement dans la requète de sélection ??

merci d'avance

g1blem
0
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
395
18 juin 2009 à 14:31
déja si tu utilise
Select CLIENT.nom, CLIENT.telprof,
From patients
comme requete alors ca ne risque pas de marcher :/
0
g1blem
Messages postés
62
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
28 août 2009
1
18 juin 2009 à 14:43
Bonjour garion28,

merci pour ton intervention

cependant, je ne colle pas toute la requète que je dois faire mais juste un petit extrait afin d'avoir la synthaxe qui m'aidera à sortir le champ en texte, puis je me débrouillerai pour l'inclure dans la requète intégrale.

la requète postée en second est exacte par rapport à la réalité (la première ne se basait que sur des champs inventés, car je pense que le nom des champs n'a aucune importance dans l'exemple).

aurais tu une idée sur la possibilité d'inclure dans le select une fonction permettant d'aboutir au résultat ?

d'avance merci

g1blem
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
395
18 juin 2009 à 15:10
la requete renvoi un ensemble de champ qui sont dans divers format, mais vu que je n'utilise pas de bdd pour mon vba, je ne peut pas trop t'aider

néanmoin essaye soit d'extraire les information séparément (1 selection par requete)
ou bien de mettre les info dans un tableau structuré (ou a plusieurs dimension si tu préfère)

(le php n'est pas mon truc ^^')
0
g1blem
Messages postés
62
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
28 août 2009
1
18 juin 2009 à 16:19
MERCI POUR TON AIDE GARION28

je ne peux pas extraire les données une par une puisqu'il me faut chaque ligne de données

quelqu'un aurait une solution à mon problème

merci

g1blem
0
Christounet
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 373
18 juin 2009 à 17:03
Bonjour,

Si j'ai bien compris ton problème, c'est que Excel supprime le premier 0 car il considère la colonne comme étant une colonne numérique. Si c'est le cas j'ai une petite question afin de peut-être te proposer une solution:
- Quelle base de données utilises-tu ? Access, Mysql, Sql Server ...

A plus
0
g1blem
Messages postés
62
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
28 août 2009
1
18 juin 2009 à 17:08
bonjour christounet

tu as tout à fait compris mon problème

par contre j'utilise un utilitaire dans le progiciel et je ne sais pas sur quelle base de données est hébergée la base.... je dirai paut-être sql server mais sans en être sur
0
Christounet
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 373
18 juin 2009 à 17:20
Bonjour,

Tu peux essayer le code suivant
Select CLIENT.nom, '+33/'+CLIENT.telprof
From patients 

Cela devrait concaténer ton numéro de téléphone avec les caractères '+33/' qui sont le préfixe international pour la France.
Le signe + est valable pour Sql Server, pour Mysql le code serait
SELECT CLIENT.nom, CONCAT('+33/',CLIENT.telprof) from patients
, si c'est Oracle, le code sera
SELECT CLIENT.nom, '+33/' || CLIENT.telprof from patients

A toi de voir ce qui fonctionne.
A plus
0
g1blem
Messages postés
62
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
28 août 2009
1
18 juin 2009 à 17:34
super Christounet c'est parfait comme cela

le premier code était le bon

merci mille fois,

j'ai simplement modifié le caractère à ajouter par # car avec +33 il restait en numérique et les chiffres trop long avait le format avec une puissance

que le dieu des informaticiens veille sur toi

encore merci

g+2blem xD
0
giheller
Messages postés
1845
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
9 juin 2022
139
18 juin 2009 à 17:42
mille excuses, j'avais zappé excel ma réponse était du php.
0
g1blem
Messages postés
62
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
28 août 2009
1
18 juin 2009 à 17:55
giheller,

franchement ce n'est pas grave, et je remercie très sincèrement toutes les personnes comme toi des coups de mains donnés
0