sql - 在查询中将非常大的数字转换为 NULL
问题描述
我正在尝试从雪花数据库中检索数据。但是当我查询数据时,它没有说明“ Failed to cast variant value {numberLong: -8301085358432}
”。从错误中,我了解到我的 SQL 查询中的值有一个很长的数字。
这是我的查询:
SELECT price,
total_price,
quantity
From Table1
以上三个量中的任何一个都可能有长号。我该如何解决这个numberLong
错误。如果值太长,有没有办法将该值转换为 NULL。
解决方案
也许我错了,但我认为错误信息不完整。为了重现错误,我运行以下命令:
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
如果是这种情况,那么您需要检查变量列中的数据。
推荐阅读
- excel - Excel函数从没有VBA的值构造数组
- java - 使用 Mockito 的测试用例未返回预期的字符串值
- python-3.x - 变形金刚:ResourceExhaustedError:分配内存失败 [Op:AddV2]
- swift - SwiftUI - 将收藏夹文本字符串从页面 TabView 传递到新的我的收藏夹 TabView
- sql - 在postgres中如何查询以单引号结尾的字符串
- mysql - 如何减少 Prisma 选择(或包含)字段代码行
- arrays - 在 Vue.js 中使用 v-for 访问对象数组中的项目
- wordpress - 提交时的 ACF 表单和重定向
- php - BadMethodCallException:方法 Illuminate\Database\Eloquent\Collection::orderBy 不存在
- java - Android 电话 API 不会在 4G 手机上返回 cellsignalstrength