Argomento 1:3 AS DECIMAL(19, 8)
Argomento 2:27 AS DECIMAL (18, 0)
-- la precisione predefinita è 18, la scala predefinita è 0 (BIGINT
è stato convertito in DECIMAL
a causa della precedenza del tipo)
p1 = 19
p2 = 18
s1 = 8
s2 = 0
Calcoliamo ad esempio 1:
precision: (19 - 8 + 0) + MAX(6, 8 + 18 + 1) = 38
scale: MAX(6, 8 + 18 + 1) = 27
Per tutti i tuoi esempi otterrai sempre una scala max 27.
0.111111111111111111111111111 (27)
11.111111111111111111111111111 (27)
0.005488934750153684025643277 (27)
L'intera parte richiede solo le cifre necessarie (1), (2), (1).
Per me è tutto perfettamente valido.
Questa risposta si basa sul lavoro di @Paul White
da Decimal Truncation In division
.