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 功能可能会在那里提供帮助
我在 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 功能可能会在那里提供帮助