繁体   English   中英

如何在 SQL 中将 FLOAT 显式转换为 VARCHAR 字段

[英]How to do explicit conversion of FLOAT to a VARCHAR field in SQL

我从浮点列(没有精度)获取查询并将其插入另一个表和 comumn 浮点(也没有精度),但我收到了这个错误:

错误 (265)结果空间不足,无法将 FLOAT 值“3.8833137793643”显式转换为 VARCHAR 字段。

查询:

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的聚合查询只返回一行。 SELECT DISTINCT不是必需的。
  • 您应该包括要插入的列。

您的问题显然是该列不够宽。 如果您已将表定义为:

create table tableA (
    col varchar
);

然后您没有指定长度,并且取决于数据库中的默认值。 你甚至知道默认值是什么吗? 在这种情况下,它是1 这对你的价值来说还不够长。 您只需要提供足够长的长度:

create table tableA (
    col varchar(255)
);

说了这么多。 我强烈建议您不要将数值存储为字符串。 这很可能会在现在和将来造成问题。 为您的数据使用适当的类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM