如何在 SQL 中将 FLOAT 显式转换为 VARCHAR 字段
How to do explicit conversion of FLOAT to a VARCHAR field in SQL
我从列 float(不精确)获取查询并将其插入另一个 table 和 comumn float(也不精确),但我收到此错误:
Error (265) Insufficient result space for explicit conversion of FLOAT value '3.8833137793643' to a VARCHAR field.
查询:
INSERT INTO TableA
SELECT DISTINCT max(price_1) AS PriceValue
FROM TableB
这可能会也可能不会回答您的问题。但是查询应该写成:
INSERT INTO TableA (<column name>)
SELECT MAX(price_1) AS PriceValue
FROM TableB;
备注:
- 没有
GROUP BY
returns 整行的聚合查询。 SELECT DISTINCT
没有必要。
- 您应该包括要插入的列。
你的问题显然是列不够宽。如果您将 table 定义为:
create table tableA (
col varchar
);
那么你还没有指定长度并且取决于数据库中的默认值。你知道默认值是什么吗?在这种情况下,它是 1
。这对你的价值来说还不够长。您只需要提供足够长的长度即可:
create table tableA (
col varchar(255)
);
综上所述。我强烈建议您不要将数字值存储为字符串。这可能会在现在和将来造成问题。为您的数据使用适当的类型。
我从列 float(不精确)获取查询并将其插入另一个 table 和 comumn float(也不精确),但我收到此错误:
Error (265) Insufficient result space for explicit conversion of FLOAT value '3.8833137793643' to a VARCHAR field.
查询:
INSERT INTO TableA
SELECT DISTINCT max(price_1) AS PriceValue
FROM TableB
这可能会也可能不会回答您的问题。但是查询应该写成:
INSERT INTO TableA (<column name>)
SELECT MAX(price_1) AS PriceValue
FROM TableB;
备注:
- 没有
GROUP BY
returns 整行的聚合查询。SELECT DISTINCT
没有必要。 - 您应该包括要插入的列。
你的问题显然是列不够宽。如果您将 table 定义为:
create table tableA (
col varchar
);
那么你还没有指定长度并且取决于数据库中的默认值。你知道默认值是什么吗?在这种情况下,它是 1
。这对你的价值来说还不够长。您只需要提供足够长的长度即可:
create table tableA (
col varchar(255)
);
综上所述。我强烈建议您不要将数字值存储为字符串。这可能会在现在和将来造成问题。为您的数据使用适当的类型。