Dlaczego SELECT 1/2 zwraca 0?

19

Jak mówi tytuł. Próbowałem nawet, SELECT CONVERT(NUMERIC, 1/2)co również zwróciło 0.

Używam SQL Server 2008.

Anonimowy Maximus
źródło

Odpowiedzi:

29

Są liczbami całkowitymi.

Próbować:

select 1.0/2.0;

Lub:

select CONVERT(NUMERIC,1)/CONVERT(NUMERIC,2);
Philᵀᴹ
źródło
14

Po pierwsze, liczby są wykonywane jako liczby całkowite, ale po drugie, nie zdefiniowano również precyzji i skali numerycznego typu danych.

Spróbuj tego:

SELECT CONVERT(NUMERIC(5, 2), 1.0/2.0)

lub nawet

SELECT CONVERT(NUMERIC(5, 2), 1/2.0)
Taryn
źródło