Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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
Lassé par la pub ? Créez un compte

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é...)



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

Merci de ton aide Coca25

Citation :
Code :o rder 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 !

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

coca25 a dit :
enleve l'espace entre cast et (

et t'as fait ca ou pas?


  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.  
  11. mysql> select * from c order by cast(ordre as signed);
  12. +----+-------+
  13. | id | ordre |
  14. +----+-------+
  15. | 1 | 1 |
  16. | 2 | 110 |
  17. | 3 | 10023 |
  18. +----+-------+
  19. 3 rows in set (0.00 sec)

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
Lassé par la pub ? Créez un compte
Tom's guide dans le monde