Problem:
Chcesz przekonwertować wartość całkowitą na typ danych DECIMAL w SQL Server.
Zamieńmy liczbę całkowitą na typ danych DECIMAL.
Rozwiązanie 1:
Użyjemy CAST()
funkcjonować. Oto zapytanie, które napiszesz:
SELECT CAST(12 AS DECIMAL(7,2) ) AS decimal_value ;
Oto wynik:
wartość_dziesiętna |
---|
12.00 |
Dyskusja:
Użyj CAST()
funkcja konwertująca liczbę całkowitą na typ danych DECIMAL. Ta funkcja przyjmuje jako argument wyrażenie lub nazwę kolumny, po której następuje słowo kluczowe AS i nowy typ danych. W naszym przykładzie przekonwertowaliśmy liczbę całkowitą (12) na wartość dziesiętną (12,00). Wyświetlana wartość ma dwa miejsca po przecinku, ponieważ DECIMAL w CAST()
ma dwa miejsca po przecinku.
SQL Server udostępnia inną opcję:CONVERT()
. To nie jest standardowa funkcja SQL, taka jak CAST()
. Poniższe zapytanie pokazuje jego zastosowanie.
Rozwiązanie 2:
Oto inny sposób konwersji liczby całkowitej na typ DZIESIĘTNY:
SELECT CONVERT(DECIMAL(7,2),12 ) AS decimal_value ;
To zapytanie daje ten sam wynik, co CAST()
, ale pobiera dwa obowiązkowe argumenty:typ danych i wyrażenie, wartość lub nazwę kolumny do przekonwertowania. Opcjonalny trzeci parametr określa sposób formatowania wartości w nowym typie. Przeczytaj więcej o formatowaniu wartości w oficjalnej dokumentacji SQL Server.
Jeśli nie musisz zwracać wartości w określonym formacie, użyj CAST()
.