当前位置: 首页 > news >正文

【Flink实战】 Flink SQL 中处理字符串 `‘NULL‘` 并转换为 `BIGINT`

文章目录

    • 一、问题描述
        • 解决方案
        • 解释

一、问题描述

当我们尝试将字符串 'NULL' 直接转换为 BIGINT 时,会遇到 NumberFormatException,因为 'NULL' 不是一个有效的数字字符串。为了避免这种错误,我们需要在转换之前进行检查。

解决方案

我们可以使用 CASE 语句来实现条件转换。具体步骤如下:

  1. 使用 CASE 语句进行条件判断

    • 检查字符串是否为 'NULL', 如果是 'NULL',则返回 0;否则,将字符串转换为 BIGINT
  2. 最外层进行 CAST 操作

    • 确保整个 CASE 语句的结果被转换为 BIGINT 类型。

示例代码

SELECT CAST(CASE WHEN original_value = 'NULL' THEN 0ELSE CAST(original_value AS BIGINT)END AS BIGINT) AS zmt_id
FROM (SELECT 'NULL' AS original_valueUNION ALLSELECT '123' AS original_valueUNION ALLSELECT '456' AS original_value
) AS test_data;
解释
  • 内层 CASE 语句:用于检查 original_value 是否为 'NULL',并根据条件返回 0 或将其转换为 BIGINT
  • 外层 CAST:确保最终结果为 BIGINT 类型。
http://www.lqws.cn/news/460441.html

相关文章:

  • 零基础入门PCB设计 一实践项目篇 第四章(STM32开发板PCB设计)
  • 破解数据可视化难题:带轴断裂的柱状图绘制全指南
  • Maven并行构建
  • IPv6 | 地址解析 / 地址管理 / 邻居发现协议(NDP)/ 无状态自动配置(SLAAC)
  • 智能群跃小助手发布说明
  • 还原自动驾驶的“前世今生”:用 Python 实现数据记录与回放系统
  • 二分查找----1.搜索插入位置
  • Java虚拟机解剖:从字节码到机器指令的终极之旅(七)
  • 端侧AI+OS垂直创新研究报告
  • 微软应用商店打不开怎么办2025,打开TLS1.3
  • shell脚本--变量及特殊变量,算术逻辑运算
  • C++ 构造函数
  • 谷歌浏览器电脑版官方下载- Google Chrome官方网页版入口
  • 猿人学js逆向比赛第一届第九题
  • window显示驱动开发—输出合并器阶段
  • 什么是Vue.js
  • Java 编程之代理模式
  • 大模型与搜索引擎的技术博弈及未来智能范式演进
  • 深入解析:如何实时获取Socket接收缓冲区的数据量
  • Python按钮点击事件快速入门
  • 全球化 2.0 | 云轴科技 ZStack与澳门天网资讯 共推AI Infra
  • gitea本地部署代码托管后仓库的新建与使用(配置好ssh密钥后仍然无法正常克隆仓库是什么原因)
  • Linux 系统中,查询 JDK 的安装目录
  • 智慧医院内部是如何互联的
  • 魅族“换血”出牌:手机基本盘站不稳,想靠AI和汽车“改命”
  • Vue 滑动验证组件
  • 下载链接记录
  • android gradle的优化
  • FPGA基础 -- Verilog 共享任务(task)和函数(function)
  • vue2通过leaflet实现图片点位回显功能