SQL-92 定義數值類型為四大類基石之一。數值類型品種最多、約束最複雜、跨平台遷移精度損失風險最高。
1234.56 → 精度 6,標度 2 → NUMERIC(6,2)| 類型 | 語法 | 特點 | 標度行為 |
|---|---|---|---|
| NUMERIC | NUMERIC(p,s) | 精確數值,文本表示;超標四捨五入 | 固定 = s |
| DECIMAL/DEC | DECIMAL(p,s) | 精確數值;小數位數 ≥ s(上限由廠商定) | ≥ s |
| INTEGER/INT | INTEGER(p) 或 INT | 精確整數;二進制/十進制實現相關 | 恆為 0 |
FLOAT(p):二進制浮點,精度 p 指二進制位數REAL:單精度浮點DOUBLE PRECISION:雙精度浮點NUMBER(10,2) ≠ SQL Server DECIMAL(10,2)(精度語義微妙不同)DECIMAL(10,2) 存儲為定點數,SQL Server 同語法但內部不同DECIMAL(19,4) 或專用 MONEY(SQL Server)+, -, *, /, %, ROUND、TRUNCATE、CEILING、FLOOR 等。結果類型通常保留最高精度,但隱式轉換可能導致截斷,顯式 CAST 更安全。