Warum gibt SELECT 1/2 0 zurück?

19

Wie der Titel schon sagt. Ich habe sogar versucht, SELECT CONVERT(NUMERIC, 1/2)die auch 0 zurückgegeben.

Ich verwende SQL Server 2008.

Anonymes Maximus
quelle

Antworten:

29

Das sind ganze Zahlen.

Versuchen:

select 1.0/2.0;

Oder:

select CONVERT(NUMERIC,1)/CONVERT(NUMERIC,2);
Philᵀᴹ
quelle
14

Erstens führen Sie die Zahlen als Ganzzahlen aus, zweitens haben Sie auch die Genauigkeit und Skalierung des numerischen Datentyps nicht definiert .

Versuche dies:

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

oder auch

SELECT CONVERT(NUMERIC(5, 2), 1/2.0)
Taryn
quelle