snowflake-cloud-data-platform - snowsql中的整数函数
问题描述
我正在尝试在雪花中运行此查询,但我一直遇到以下错误。有人可以告诉我我做错了什么。我正在尝试获取年龄的整数值。
SELECT DISTINCT Target_quikvalf.MPOLICY
FROM Target_quikvalf
WHERE (((Target_quikvalf.MPOLICY) Like '%N')
AND ("DATE" (Target_quikvalf.MISSUE) Between '5/1/2020' And '5/31/2020')
AND (as_integer((Target_quikvalf.MAGE) / 5)*5))
Error Message:
SQL compilation error: invalid type [FLOAT] for parameter 'AS_INTEGER(variantValue...)'
解决方案
应用功能的位置是问题所在。在这里,我们在应用数学计算之前转换数据类型。
您需要将 FLOAT 转换为 INT 可以像这样进行转换:
SELECT DISTINCT Target_quikvalf.MPOLICY
FROM Target_quikvalf
WHERE (((Target_quikvalf.MPOLICY) Like '%N')
AND ("DATE" (Target_quikvalf.MISSUE) Between '5/1/2020' AND '5/31/2020')
AND ((cast(Target_quikvalf.MAGE as int) / 5) * 5);
作为替代方案,我们可以尝试使用 TO_NUMBER 将 FLOAT 转换为数字。如果 Target_quikvalf.MAGE 列是变体数据类型,那么您可以像这样运行它(在下面的示例中,我们强制转换后的浮点数没有十分位,并且可以支持低于 1000 的年龄,因为人们可以超过100岁):
SELECT DISTINCT Target_quikvalf.MPOLICY
FROM Target_quikvalf
WHERE (((Target_quikvalf.MPOLICY) Like '%N')
AND ("DATE" (Target_quikvalf.MISSUE) Between '5/1/2020' AND '5/31/2020')
AND ((to_number(Target_quikvalf.MAGE, 3, 0) / 5) * 5);
推荐阅读
- perl - 如何将 Mojo::Pg db 处理程序传递给控制器?(欢快的)
- python - 无法使用 pdb 调试 Django
- jestjs - 使用实体适配器的 JEST 中带有参数的 NgRx 选择器
- python - 如何在 Mac 上自定义 tkinter 菜单栏?
- python - 如何从 JSON 输出数据?
- javascript - React Native 渲染不一致?
- java - 方法局部内部类中的合成字段如何链接到方法局部变量的值?
- visual-studio-code - 在 vscode 中启用“将命令作为登录 shell 运行”
- .net - 从 net46 升级到 net461 会破坏 NuGet 包参考
- c# - 如何在设计器视图中正确加载资源?