2

我正在尝试将行从一个表插入到另一个表。在第一个表中,一个列的数据类型是 char(5),但同一列在第二个表中具有 tinyint(4) 数据类型。当我运行插入查询时,它说

Incorrect integer value: '' for column 'x' at row 258

我现在无法更改或修改数据类型,因为它违反了一些约束。有没有办法使用强制转换或将 char 转换为 tinyint?

谢谢。

4

1 回答 1

3

你可能想要这样的东西:

INSERT INTO newtable
SELECT CASE WHEN x = '' THEN 0 ELSE x END
FROM oldtable

我假设您希望空白变成零?如果不是,则提供您希望空白具有的整数值。

如果还有其他例外,请在 CASE 表达式中使用更多替代项。

于 2013-02-04T20:00:34.483 回答