如何从 table select 数据(具有一种小数类型)插入到另一个 table(具有不同的小数类型)

How to select data(with one decimal type) from a table and insert into another table (with different decimal type)

我想 select 来自 TABLE A 的数据并将数据插入 TABLE B。虽然我知道如何实现这一点。我用过:

INSERT INTO TableA(column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM TableB
WHERE condition;

但挑战在于数据类型。目标 TABLE A 有一个数据类型定义为

的列
column1(decimal(16,3),null)

而 table TABLE B 有一个数据类型定义为

的列
column1(decimal(15,4),null)

请帮帮我!

应该没问题。 SQL 服务器会自动转换值。如果 B 中有一个非常大的值不适合 A,那么您可能会出错。

要解决这个问题,请使用 try_convert():

INSERT INTO TableA(column1, column2, column3, ...)
    SELECT TRY_CONVERT(decimal(15,4), column1), column2, column3, ...
    FROM TableB
    WHERE condition;

这将避免类型转换错误。