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

3 sposoby konwersji liczby całkowitej na dziesiętną w SQL Server

Oto trzy opcje konwersji liczby całkowitej na wartość dziesiętną w SQL Server przy użyciu T-SQL.

CAST() Funkcja

CAST() funkcja konwertuje wyrażenie jednego typu danych na inny:

SELECT CAST(275 AS DECIMAL(5, 2));

Wynik:

275.00

W tym przykładzie przekonwertowaliśmy liczbę całkowitą (275 ) do wartości dziesiętnej z dokładnością 5 i z 2 miejsca dziesiętne.

Dziesiętny i numeryczny są synonimami i mogą być używane zamiennie. Dlatego możemy dostosować nasz przykład w następujący sposób, aby osiągnąć ten sam wynik:

SELECT CAST(275 AS NUMERIC(5, 2));

Wynik:

275.00

Ważne jest, aby pamiętać, aby dostosować precyzję zgodnie z wymaganiami:

SELECT CAST(18301275 AS DECIMAL(10, 2));

Wynik:

18301275.00

Jeśli argument precyzji nie jest wystarczająco duży, pojawia się błąd:

SELECT CAST(18301275 AS DECIMAL(9, 2));

Wynik:

Msg 8115, Level 16, State 8, Line 1
Arithmetic overflow error converting int to data type numeric.

CONVERT() Funkcja

CONVERT() funkcja robi to samo co CAST() , z wyjątkiem nieco innej składni:

SELECT CONVERT(DECIMAL(5, 2), 275);

Wynik:

275.00

Użyj operatora arytmetycznego

Inną opcją jest użycie operatora arytmetycznego, takiego jak operator mnożenia:

SELECT 275 * 1.00;

Wynik:

275.00

W tym przykładzie mnożymy liczbę całkowitą przez 1.00 .

W SQL Server, gdy operator łączy wyrażenia różnych typów danych, typ danych o niższym priorytecie jest najpierw konwertowany na typ danych o wyższym priorytecie. Operacja następnie zwraca typ danych argumentu o wyższym priorytecie.

W SQL Server liczba dziesiętna ma wyższy priorytet niż liczba całkowita.

Mnożąc ją przez 1,00 nie zmieniamy części całkowitej. Po prostu konwertujemy to na dziesiętne i dodajemy część ułamkową.

Zobacz Pierwszeństwo typów danych w SQL Server, aby uzyskać listę typów danych w porządku pierwszeństwa.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd serwera SQL 110:W instrukcji INSERT jest mniej kolumn niż wartości określone w klauzuli VALUES.

  2. Nie można otworzyć domyślnej bazy danych użytkownika. Logowanie nie powiodło się. po zainstalowaniu SQL Server Management Studio Express

  3. Skalowalne procesory Intel Xeon i SQL Server 2017

  4. Wybór pierwszego rzędu na grupę

  5. Formatowanie liczb przez dopełnienie zerami wiodącymi w SQL Server