Databricks整数转字符并拼接方法及代码空值问题排查
Databricks整数转字符与字符串拼接问题解答
一、整数转字符并字符串拼接的常用方法
- 直接用
cast()将整数转为字符串,再通过concat()拼接:concat(ParentId, "-", cast(Task_Number + 1 as string)) as tsk - 推荐使用
concat_ws(),它会自动跳过空值,用指定分隔符拼接非空字段:concat_ws("-", ParentId, cast(Task_Number + 1 as string)) as tsk
二、你的代码返回空值的原因排查
你的代码:
concat(SF1.ParentId,"-", Cast(Cast(SF1.Task_Number + 1 as int)as char(2))) AS tsk
可能的问题点:
- 存在空值输入:
concat()只要任一参数为null,结果就为null。检查ParentId或Task_Number是否有null值——比如Task_Number为空时,Task_Number +1会返回null,后续转换也还是null,最终导致拼接结果为空。 char(2)长度限制:如果Task_Number +1的结果是≥100的整数,转为char(2)会因长度不足出现异常(返回null或截断)。建议替换char(2)为string类型,避免长度限制问题。Task_Number类型不匹配:如果Task_Number不是数值类型,Task_Number +1会返回null。先确认Task_Number是int、long等数值类型,必要时先转为数值再计算。
内容的提问来源于stack exchange,提问作者MGoyal
相关产品推荐
相关产品推荐

