Si le montant est "0012304 $", je veux un résultat comme "12304 $" et si le montant est "0000000 $" alors "0 $"
Quand j'utilise regexp_replace (amount, '^? 0', '')
, cela remplace tous les zéros de la colonne et donne un résultat de 1234 $ au lieu de 12304 $.
Je souhaite conserver "$" devant le montant après avoir supprimé tous les zéros non significatifs.
3 Réponses :
En fonction de la question liée (duplication possible), vous pouvez modifier la sélection pour obtenir l'effet souhaité. Ici, nous faisons correspondre le '$' au début de la chaîne, suivi de n'importe quel nombre de 0, supprimons-le et rajoutons-le.
SELECT some_string, REGEXP_REPLACE(some_string, "^\\$0+", '$') stripped_string FROM db.tbl
* modifié pour ajouter une barre oblique supplémentaire par commentaire.
Merci beaucoup! mais cela a fonctionné après avoir ajouté un autre '\' dans "^ \\ $ 0+"
Heureux que vous ayez compris!
Merci! mais le défi est toujours lorsque le montant est "000000 $", alors le voudrait comme "0 $", si j'utilise la méthode ci-dessus, il n'affiche que "$" dans la colonne au lieu de "0 $"
IF (stripped_string = '$', '$ 0', stripped_string)
Cela dépasse cependant ma compréhension à ce stade.
Vous pouvez essayer le code ci-dessous:
select regexp_replace(substring('$0012304',2),'^0+?','$') from hive_table;
Première sous-chaîne, puis remplacez-la par $.
Supprimer le signe dollar s'il existe, convertir en double (cela supprimera les zéros non significatifs), concaténer avec le signe dollar:
$1.0
Résultat:
select concat('$',cast(regexp_replace('$000001','^\\$','') as double))
Utilisez bigint
ou int
au lieu de double
si les chiffres sont des entiers uniquement
Cette méthode fonctionnera si dollar le signe est absent et avec tous les zéros également.
Testez ici: http : //demo.gethue.com/hue/editor? editor = 291139
Bienvenue! à SO, veuillez rechercher votre question avant de la poster ici si vous suivez les règles cela fera gagner du temps à tout le monde Voici le lien vers la réponse stackoverflow.com/questions/38146780/...
Copie possible de Supprimer les zéros non significatifs à l'aide de HiveQL
Je veux garder le symbole "$" devant le montant après avoir supprimé tous les zéros non significatifs.