Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak przekonwertować liczbę całkowitą na liczbę dziesiętną w SQL Server

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() .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przenoszenie systemowych baz danych w klastrze pracy awaryjnej programu SQL Server

  2. Proste funkcje SQL Server do rozwiązywania rzeczywistych problemów

  3. Jak znaleźć sumę wielu kolumn w tabeli w SQL Server 2005?

  4. Sekwencja a tożsamość

  5. Wybierz kolumny z zestawu wyników procedury składowanej