首页 > 解决方案 > 在查询中将非常大的数字转换为 NULL

问题描述

我正在尝试从雪花数据库中检索数据。但是当我查询数据时,它没有说明“ Failed to cast variant value {numberLong: -8301085358432}”。从错误中,我了解到我的 SQL 查询中的值有一个很长的数字。

这是我的查询:

SELECT price,
       total_price,
       quantity
From Table1

以上三个量中的任何一个都可能有长号。我该如何解决这个numberLong错误。如果值太长,有没有办法将该值转换为 NULL。

标签: sqlsnowflake-cloud-data-platformdbt

解决方案


也许我错了,但我认为错误信息不完整。为了重现错误,我运行以下命令:

create table testv ( v variant);

insert into testv select '{numberLong: -8301085358432}'::variant;

create view dbt_likes_views as select to_decimal(v) price from testv;

select price
from dbt_likes_views;

无法将变体值“{numberLong: -8301085358432}”转换为 FIXED

如果是这种情况,那么您需要检查变量列中的数据。


推荐阅读