Par exemple, un varchar valeur "40.00" et que vous voulez utiliser avec les opérateurs ">" ou "<" dans la clause where. Comment puis-je l'utiliser?Oracle. Convertir valeur varchar "40.00" en numérique
Répondre
Vous pouvez convertir le varchar à une décimale comme:
select *
from YourTable
where CAST(YourField AS decimal) < 40.00
Ou utilisez la fonction TO_NUMBER():
select *
from YourTable
where TO_NUMBER(YourField) < 40.00
Si le champ est pas toujours un certain nombre, et vous avez un Oracle relativement récent installation, vous pouvez sélectionner des lignes où YourField est numérique:
select *
from (
select *
from YourTable
where regexp_like(YourField, '^-?[[:digit:],.]+$')
) sub
where TO_NUMBER(YourField) < 40.00
Vous pouvez le convertir en un numéro en utilisant la fonction TO_NUMBER:
WHERE TO_NUMBER(col) > 39
Mais attention: si une ligne dans le tableau a une entrée non numérique dans cette colonne, la requête peut échouer avec une erreur:
SQL> create table t (col varchar2(10));
Table created.
SQL> insert into t values ('39.00');
1 row created.
SQL> insert into t values ('40.00');
1 row created.
SQL> insert into t values ('41.00');
1 row created.
SQL> insert into t values ('xxx');
1 row created.
SQL> select * from t where to_number(col) > 39;
ERROR:
ORA-01722: invalid number
Si vous voulez comparer les numéros puis utilisez la fonction TO_NUMBER Oracle 11g doc
Je suggère que si vous voulez traiter ainsi comme un certain nombre de la meilleure façon est de changer votre schéma/LDD afin que le 40.00 est stocké dans un champ numérique. Cela signifierait que les comparaisons fonctionnent, que l'accès soit plus efficace, par ex. où champ> x utiliserait un index - où TO_NUMBER (field)> x n'utilise pas d'index et les erreurs de données peuvent être détectées lors de l'insertion plutôt que d'avoir à exécuter des rapports pour trouver des données non numériques.
AND (TO_NUMBER(NVL(NAME_FIELD,'0'),'99999999D999','nls_numeric_characters=,.') > 0)
- 1. Convertir varchar en numérique dans Informix
- 2. oracle varchar au numéro
- 3. Comment trier une colonne varchar en utilisant l'ordre numérique
- 4. ORACLE Erreur numérique ou de valeur
- 5. Oracle - Nombre de varchar
- 6. convertir HashBytes VARCHAR
- 7. Postgres: Convertir varchar en texte
- 8. Comment convertir octet [] en varchar?
- 9. Comment convertir Varchar en Datetime?
- 10. Erreur lors de la conversion de varchar en numérique
- 11. Comment convertir un tableau d'octets en sa valeur numérique (Java)?
- 12. Comment convertir ces valeurs varchar en datetime
- 13. Oracle BLOB vs VARCHAR
- 14. Conversion type de données varchar numérique
- 15. Comment convertir varchar en décimal lorsqu'aucune donnée de ligne n'existe
- 16. Convertir la colonne varchar en smalldatetime
- 17. MySQL: Convertir plusieurs formats varchar en DateTime
- 18. convertir format d'affichage numérique
- 19. Convertir cette signature numérique PHP en Delphi
- 20. Comment convertir un nombre numérique en chaîne?
- 21. Comment convertir une valeur de version de chaîne en valeur numérique dans Inno Setup Scripts?
- 22. jQuery/Javascript - Comment convertir une valeur de pixel (20px) en une valeur numérique (20)
- 23. VARCHAR (MAX) par rapport à VARCHAR (n) dans Oracle
- 24. Oracle mise à jour CLOB avec varchar
- 25. comment convertir un varchar à l'heure en java?
- 26. Comment puis-je convertir une valeur numérique en texte en JavaScript?
- 27. Convertir la sous-requête sql en liste ou en varchar
- 28. Comment convertir une chaîne numérique à 18 chiffres en BigInteger?
- 29. Modifier le type de données varchar en Nombre dans Oracle
- 30. Erreur de conversion type de données varchar numérique
+1 pour signaler les pièges. –