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
.