sql >> Databáze >  >> RDS >> Sqlserver

3 způsoby, jak převést celé číslo na desítkové v SQL Server

Zde jsou tři možnosti převodu celého čísla na desítkovou hodnotu v SQL Server pomocí T-SQL.

Položka CAST() Funkce

CAST() funkce převede výraz jednoho datového typu na jiný:

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

Výsledek:

275.00

V tomto příkladu jsme převedli celé číslo (275 ) na desetinnou hodnotu s přesností 5 a pomocí 2 desetinná místa.

Desetinná a číselná jsou synonyma a lze je používat zaměnitelně. Proto můžeme náš příklad upravit následovně, abychom dosáhli stejného výsledku:

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

Výsledek:

275.00

Je důležité nezapomenout upravit přesnost podle potřeby:

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

Výsledek:

18301275.00

Pokud argument přesnosti není dostatečně velký, dojde k chybě:

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

Výsledek:

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

Položka CONVERT() Funkce

CONVERT() funkce dělá to samé jako CAST() , kromě s mírně odlišnou syntaxí:

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

Výsledek:

275.00

Použít aritmetický operátor

Další možností je použít aritmetický operátor, jako je operátor násobení:

SELECT 275 * 1.00;

Výsledek:

275.00

V tomto příkladu vynásobíme celé číslo 1.00 .

V SQL Server, kdykoli operátor zkombinuje výrazy různých datových typů, datový typ s nižší prioritou se nejprve převede na datový typ s vyšší prioritou. Operace pak vrátí datový typ argumentu s vyšší prioritou.

Na serveru SQL Server má desítkové číslo vyšší prioritu než celé číslo.

Vynásobením 1,00 nezměníme celočíselnou část. Jednoduše jej převedeme na desítkové a přidáme zlomkovou část.

Seznam datových typů v pořadí priority naleznete v tématu Priorita datových typů v SQL Server.


  1. Jak DAYNAME() funguje v MariaDB

  2. Přemostění RDBMS a NoSQL:Úvod do 2DX UI clusteru

  3. Znát vztahy mezi všemi tabulkami databáze v SQL Server

  4. Jednoduchý úvod do používání MySQL na linuxovém terminálu