# [KB]关于 TiDB 的 SQL union 查询中 decimal 两列相乘报错 ERROR 8029 (HY000)  Bad Number

## Issue

1. SQL union 查询 decimal 两列相乘报错 ERROR 8029 (HY000): Bad Number.

2. 举例：

```sql
CREATETABLE test_uni_a (
id int(10)NOTNULL,
a decimal(32,18)DEFAULTNULL,
b decimal(32,18)DEFAULTNULL,PRIMARYKEY(id))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_bin;CREATETABLE test_uni_b (
id int(10)NOTNULL,
a decimal(32,18)DEFAULTNULL,
b decimal(32,18)DEFAULTNULL,PRIMARYKEY(id))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COLLATE=utf8mb4_bin;insertinto test_uni_a values(1,0.02354060000000000,100.000000000000000000);insertinto test_uni_b values(1,0.02354060000000000,100.000000000000000000);select(a\*b) am from test_uni_a unionselect(a\*b) am from test_uni_b;
```

遇到报错 `ERROR 8029 (HY000): Bad Number.`

## Root Cause

BUG，union 查询中 Decimal 在编码之前没有正确设置小数部分 修复 PR [https://github.com/pingcap/tidb/pull/21783](https://github.com/pingcap/tidb/pull/21783)

## Diagnostic Steps

N/A 

## Resolution

1. 升级到 v5.0.x 版本修复
2. 预计升级到 v4.0.13 修复