Argument 1:3 AS DECIMAL(19, 8)
Argument 2:27 AS DECIMAL (18, 0)
-- domyślna precyzja to 18, domyślna skala to 0 (BIGINT
został przekonwertowany na DECIMAL
ze względu na pierwszeństwo typu)
p1 = 19
p2 = 18
s1 = 8
s2 = 0
Policzmy na przykład 1:
precision: (19 - 8 + 0) + MAX(6, 8 + 18 + 1) = 38
scale: MAX(6, 8 + 18 + 1) = 27
Dla wszystkich twoich przykładów otrzymasz zawsze maksymalnie 27 skali.
0.111111111111111111111111111 (27)
11.111111111111111111111111111 (27)
0.005488934750153684025643277 (27)
Cała część zajmuje tylko niezbędne cyfry (1), (2), (1).
Dla mnie wszystko się zgadza.
Ta odpowiedź jest oparta na pracy @Paul White
z Decimal Truncation In division
.