Argument 1 :3 AS DECIMAL(19, 8)
Argument 2 :27 AS DECIMAL (18, 0)
-- la précision par défaut est 18, l'échelle par défaut est 0 (BIGINT
a été converti en DECIMAL
en raison de la priorité des types)
p1 = 19
p2 = 18
s1 = 8
s2 = 0
Calculons par exemple 1 :
precision: (19 - 8 + 0) + MAX(6, 8 + 18 + 1) = 38
scale: MAX(6, 8 + 18 + 1) = 27
Pour tous vos exemples, vous obtiendrez toujours une échelle maximale de 27.
0.111111111111111111111111111 (27)
11.111111111111111111111111111 (27)
0.005488934750153684025643277 (27)
La partie entière ne prend que les chiffres nécessaires (1), (2), (1).
Pour moi tout est parfaitement valable.
Cette réponse est basée sur le travail de @Paul White
de Decimal Truncation In division
.