2016-08-24 1 views
0

J'essaie de convertir/lancer une chaîne de notation scientifique (par exemple, '9.62809864308e-05') dans un flottant en SQL.Conversion de la notation scientifique en float (string to float) en SQL (Redshift)

J'ai essayé la méthode standard: convert (FLOAT, x) où x = '9.62809864308e-05', mais il renvoie le message d'erreur: Non implémenté fixe fonction de conversion char - bpchar_float8: 2585. Ce que je fais est très simple. Ma table a 2 colonnes: ID et taux (avec le taux étant la notation scientifique de chaîne que j'essaye de lancer pour flotter). J'ai ajouté une 3ème colonne à ma table et a essayé de remplir la 3ème colonne avec la représentation flottante de x:

UPDATE my_table 
SET 3rd_column = CONVERT(FLOAT, 2nd_column) 

Type de données de 2nd_column est CHAR(20)

En outre, tous les float string est en notation scientifique - - certains sont en notation flottante normale. Je me demande donc s'il existe une fonction intégrée qui peut prendre soin de tout cela.

Merci!

+0

* BZZZZT * Ne pas écrire 'ne fonctionnerait pas'. Explique pourquoi ça ne marcherait pas. Message d'erreur? Le moniteur explose? Publiez aussi le code _Actual_ que vous utilisez –

+0

Merci pour vos commentaires! Juste mis à jour ma question. – dtsui

+0

Quel type de données sont exactement vos deux colonnes? Je suggère que vous ajoutiez une clause where à votre mise à jour pour choisir et choisir des valeurs particulières pour voir si elles fonctionnent ou non. –

Répondre

0

Transforme que pour toute représentation de chaîne d'un float x, alors disons x = '0,00023' ou x = '2.3e-04'

CONVERT (FLOAT, x) convertira le type de données x de char (string) à float.

La raison pour laquelle cela n'a pas fonctionné pour moi était ma chaîne contenait des espaces blancs.