libre office base

Bonjour

Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.

Email:: jeu9@free.fr
Sujet:: libre office base
OS:: Windows 7
Version:: 6.0.x
Question:: Bonjour,
Dans la base, j'effectue une requête, et je fais le tri sur un champ qui comporte un numéro. J'effectue le choix croissant, mais le tri n'est pas correct car par exemple le n° 120 est avant le N° 5. Il faudrait d'abord trier les valeurs à 1 chiffres puis à 2 chiffres etc...Mais Comment faire ?
D'avance merci

Bonjour

Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.

Email:: jeu9@free.fr
Sujet:: libre office base
OS:: Windows 7
Version:: 6.0.x
Question:: Bonjour,
Dans la base, j'effectue une requête, et je fais le tri sur un champ qui comporte un numéro. J'effectue le choix croissant, mais le tri n'est pas correct car par exemple le n° 120 est avant le N° 5. Il faudrait d'abord trier les valeurs à 1 chiffres puis à 2 chiffres etc...Mais Comment faire ?

il faudrait s'assurer d'abord que le champ est bien numérique car
visiblement il le prend pour du texte. Il n'y a que ce numéro dans le
champ ?

D'avance merci

Gérard

Bonjour,

Si 120 est avant 5 c'est sans doute parce que vous avez défini la colonne
comme du texte (VARCHAR) et non un format numérique (INTEGER par exemple).
Pour récupérer les choses je crois que vous devrez créer une nouvelle
colonne au bon format, puis faire un UPDATE de chaque ligne en insérant une
valeur CASTée en numérique de la valeur littérale d'origine. Ensuite vous
pourrez supprimer la colonne originale et éventuellement renommer la
nouvelle colonne.

Bonne journée,

Thierry

Oui bien vu Gérard

Merci je l'avais défini comme une zone de texte. Oui il y a bien que ce chiffre dans le champ

Mais si je le supprime pour le remplacer par un champ numérique est-ce que je ne risque pas de perdre toute les valeurs saisies dans ce champ.

Cordialement

Re,

C'est pour cela que je vous suggère la séquence d'opérations de mon
précédent message.

Thierry

Bonjour,

Fais une copie de ton fichier avant toutes modifs ainsi tu pourras toujours
revenir en arrière :wink:

Yves

Bonjour,

Merci pour votre aide.

Je vais faire une copie de sauvegarde puis je vais créer un nouveau champ numérique, puis faire une copie de mon champ texte dans mon champ numérique.

Bon week-end

Cordialement

Non, en principe l'ajout d'une colonne (champ) sur une table ne provoque pas de perte d'information. Ensuite on remplit la nouvelle colonne, ça se fait en  une instruction SQL du type :
update "matable" set "nouveauchamp"="ancienchamp"
cela fait les informations sont toujours disponibles. Ensuite on peut détruire le champ inutile (alter table "matable" delete "ancienchamp").