2017-10-12 1 views
0

Je rencontre des difficultés avec certaines de ces conversions, donc je m'excuse, j'ai déjà posé une question similaire, mais je n'arrive pas à comprendre comment y parvenir.SQL CONVERT STRING

donc une valeur de 50.00 est actuellement exportée dans le format suivant -

000000000000050000 

Une valeur de 25,99 ressemblerait

000000000000025990 

Ce champ est de 18 caractères où les personnages principaux sont rembourré avec un zéro.

Ce que je suis en train de faire est de convertir en une chaîne de 19 caractères - toujours avec zéros - mais la valeur de 50 ou 25,99 est légèrement différent -

000000000000050000 devient 0000000000000005000

000000000000025990 devient 0000000000000002599

Toute aide serait grandement appréciée.

+0

Recherche de la fonction T-SQL 'SUBSTRING' – saidfagan

+0

Comment la conversion de 18 caractères est-elle effectuée? – gbn

+0

Les réponses données ci-dessous traduisent parfaitement la chaîne à ce que vous voulez. N'oubliez pas de modifier le champ qui contiendra les nouveaux numéros à nvarchar (19) ALTER TABLE nom_table ALTER COLUMN somecolumn nvarchar (19) – russ

Répondre

1

Vous semblez vouloir:

select '00' + left(str, 17) 

Ce format est très étrange. Peut-être que vous devriez envisager d'utiliser numeric/decimal, qui peut représenter avec précision le nombre.

0

Beaucoup d'hypothèses vont dans cette réponse, mais ...

SELECT '00'+LEFT(OriginalField, 17) 

Ce serait tronquer votre 18e caractère original et il suffit de mettre deux plus zéros sur le front.

La solution n'est pas si simple si vous avez besoin d'arrondir le 17ème caractère.