Denodo:如何聚合 varchar 数据类型?

Denodo: How to aggregate varchar data types?

我在 Denodo 的视图 table 中从一个 anstime 列创建一个聚合,我正在使用 Cast 将其转换为浮点数,它仅适用于带句点的数字(示例 123.123)但不适用于没有句点的数字(例如 123)。这是我的代码,仅适用于带句点的数字:

SELECT row_date,
    case
        when sum(cast(anstime as float)) is null or sum(cast(anstime as float)) = 0
        then 0
        else sum(cast(anstime as float))
    end as xans
FROM table where anstime like '%.%'
group by row_date

谁能帮我解决没有经期的问题?

您的 where anstime like '%.%' 子句将限制对 anstime 中有句点的地方的可能响应。如果您想允许所有值,请将其删除。

感谢那些对我的关注做出回应的人。最后,我们不得不联系我们的开发人员,将列的数据类型从 varchar 修复为 float,而不是采取解决方法。

我猜你在 anstime 中得到的值不是数字,因此为什么没有 where anstime like '%.%' 谓词会导致失败,正如其他评论中提到的那样。

您可以尝试在此视图之前添加一个中间视图,它会去除所有非数值(当然保留小数点字符),这样您就不必使用 where anstime like '%.%' 过滤器.

也许 REGEXP 功能可能会在那里提供帮助