2016-03-29 7 views
0

ich die Dezimalgenauigkeit hinzufügen möchten für die Werte zu setzenDezimalgenauigkeit in hive

Beispiel:

select 1*1.00000; 

Ausgang: 1.0

Auch mit den Darstellern versucht

select cast(cast(1*1.0000 as double) as decimal(5,2)) 

Ausgabe: 1

Ich möchte, dass die Ergebnisse als 1.000 angezeigt werden. Gibt es eine Möglichkeit, dies im Bienenstock zu tun?

Antwort

2

Erstellen Sie eine Tabelle und testen Sie sie. Es funktioniert, wenn wir den genauen Genauigkeitswert angeben, wie in der Dezimalfunktion erwähnt.

create table test1_decimal (b decimal (5,3)); 

INSERT INTO test1_Decimal values(1.000); //This will shrink it to 1 as the total digits is not five. 

INSERT INTO test1_Decimal values(123.12345); //This results in NULL as it exceeds the total digits(5). 

INSERT INTO test1_Decimal values(12.123); //This will give you exact result as the precision and number of digits fits. Ouputs as 12.123 

Wenn der Wert also mit der Dezimalfunktion übereinstimmt, wird er korrekt angezeigt, sonst wird er verkleinert oder in NULL konvertiert.

+0

Oh Okay, es funktioniert, aber ich möchte die Genauigkeit standardmäßig eingestellt werden, ob meine Daten 1 oder 1.000 oder 1.0000 ist die endgültige Ausgabe sollte als 1.000 sein. Gibt es einen anderen Weg? Da meine Daten bereits in Tabellen sind, die riesig sind, kann ich keine Cte- oder Temp-Tabellen erstellen. –

+0

Es gibt keine Möglichkeit, denke ich .. –