Tom's Guide > Forum > Programmation > [RESOLU]fonctions qui peut convertir une chaine de caractère en entier

[RESOLU]fonctions qui peut convertir une chaine de caractère en entier

Forum Programmation : [RESOLU]fonctions qui peut convertir une chaine de caractère en entier

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour a tous et a toutes :bounce:

Je voulais juste savoir s'il existait une fonctions qui pourrait me permettre de convertir une chaine de caractère en entier .

le resultat de ma requete etant une chaine de caractère ,je voudrais la convertir en entier afin de pouvoir la trier comme je le veux

la requete est la suivante :

SELECT * FROM compagnies ORDER BY effectif DESC (effectif étant le nombre de salaries et effectif est un varchar)

Ma requete me permet de faire le trie des salarie des compagnies avec un trie descroissante seulement le IC c'est que comme c'est un VARCHAR
782 est plus que 72500 et c'est pas vraiment ce que je veux

Avec cette fonction je pourrais avoir une résultat un peu plus cohérent

Si quelqu'un connait la réponse alors qu'il le dise

A pluche


Message édité par poyoland le 02-03-2007 à 11:34:28
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Salut,
Il faudrait plus d'informations... quel est le SGBD que tu utilises ? Si c'est Oracle tu peux utiliser la fonction TO_NUMBER(chaine) :
SELECT * FROM compagnies ORDER BY TO_NUMBER(effectif) DESC
Sinon, y a-t-il une bonne raison pour que cette colonne soit de type VARCHAR ? Il serait plus logique d'utiliser un NUMBER...
Si ce n'est pas Oracle, désolé je n'ai pas la solution... (ça fait longtemps que j'ai pas utilisé autre chose, alors je suis un peu rouillé...)

Répondre à tomlev



Citation :

y a-t-il une bonne raison pour que cette colonne soit de type VARCHAR ? Il serait plus logique d'utiliser un NUMBER...


Pour ce qui est du fait que ce n'est pas en INT, je ne sais pas du tout ce n'est pas moi qui est cré la BDD

Citation :

Si ce n'est pas Oracle, désolé je n'ai pas la solution... (ça fait longtemps que j'ai pas utilisé autre chose, alors je suis un peu rouillé...)


dsl Mais c'est pas Oracle, c'est Mysql

Merci comme meme


Message édité par poyoland le 02-03-2007 à 10:01:48
Répondre à poyoland

essaye

Code :
  1. order by cast (effectif as signed) desc


Répondre à coca25

Merci de ton aide Coca25

Citation :

Code :order by cast (effectif as signed) desc



Mais la connection est impossible

Citation :

Connection impossible !
SELECT * from compagnies ORDER BY CAST (C_eff as signed) desc
Erreur de syntaxe près de '(C_eff as signed) desc' à la ligne 1



Franchement comprend pas !

Répondre à poyoland

enleve l'espace entre cast et (
et t'es sur de ta requete?
dans ton premier post, tu parles de la colonne effectif et la de C_eff??

Répondre à coca25

excuse C_eff et effectif ne sont qu'une et une seule chose

ct pour l'exemple c'est de dire effectif que C_eff

c plus compréhensible

Citation :

t'es sur de ta requete?



sinon pour ma requete oui je suis sur que c bon juste ce truc enormement chiant de VARCHAR

Répondre à poyoland

coca25 a écrit :

enleve l'espace entre cast et (


et t'as fait ca ou pas?


Code :
  1. mysql> select * from c order by ordre;
  2. +----+-------+
  3. | id | ordre |
  4. +----+-------+
  5. |  1 | 1    |
  6. |  3 | 10023 |
  7. |  2 | 110  |
  8. +----+-------+
  9. 3 rows in set (0.00 sec)
  10. mysql> select * from c order by cast(ordre as signed);
  11. +----+-------+
  12. | id | ordre |
  13. +----+-------+
  14. |  1 | 1    |
  15. |  2 | 110  |
  16. |  3 | 10023 |
  17. +----+-------+
  18. 3 rows in set (0.00 sec)

Répondre à coca25

Citation :

enleve l'espace entre cast et (



En faite le cast fonctionne c'était juste l'espace qui faisait que ca ne fonctionnait pas

Merci coca25

Répondre à poyoland

Tu n'as pas moyen de modifier la base de données ???

Enfin je sais pas mais se serait plus simple et plus logique de mettre un type "entier" pour un effectif....

Encore une base de donnée codées avec des pieds quoi.....

Répondre à Kymic@IDN

En fait c'est ce que je pense au départ mais les effectifs qui se trouvent dans la table sont insérés avec des virgules donc VARCHAR


Et comme c'est pas moi qui l'ai créé ...

Voila sinon le résultat finale de ma requete c'est :

SELECT * FROM nomTable ORDER BY cast(effectif as signed)desc

Voila a pluche pour de nouvelles questions

Répondre à poyoland
Tom's Guide > Forum > Programmation > [RESOLU]fonctions qui peut convertir une chaine de caractère en entier
Aller à :

Il y a 2435 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens