【问题标题】:Amazon Redshift MOD calculation on numeric column causing error数字列上的 Amazon Redshift MOD 计算导致错误
【发布时间】:2020-03-13 08:10:58
【问题描述】:

我在尝试对 Amazon Redshift 数据库中的数字列执行 MOD 时收到此错误。这是一个错误还是我错过了什么?

create table sch.test123(abc numeric(10,5));
insert into sch.test123(abc) values(12345.345);
select mod(cast(abc as decimal(10,3)),cast('10.0' as  decimal(10,3))) from sch.test123;

错误是

无效操作:Redshift 表不支持指定的类型或函数(每条 INFO 消息一个)。

【问题讨论】:

  • 首先:insert 应该失败,因为值 123456.345 不能适合 numeric(10, 5)
  • 编了个例子没注意,现在编辑一下。

标签: sql amazon-web-services amazon-redshift


【解决方案1】:

这是MOD() 函数中的一个问题。它目前仅适用于 INT 和 BIGINT 数据类型。但是,您可以改用modulo operator

SELECT abc % 10.000 from #test123;
--  5.34500 

感谢您提请我们注意。我们已经确定了该问题并正在努力修复。修复后,我们会在论坛顶部的维护公告中注明。 https://forums.aws.amazon.com/forum.jspa?forumID=155&start=0

更新:此问题现已在最新的 Redshift 版本中得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2022-01-19
    相关资源
    最近更新 更多