Spark Scala中如何移除String/Varchar类型字段的前导零?
移除VARCHAR类型变量的前导零方法
针对带前导零的VARCHAR变量(例如0000000036754678),不同数据库有对应的处理方式,以下是常见实用方案:
MySQL
使用TRIM函数指定移除前导的0:
TRIM(LEADING '0' FROM your_variable)
- 示例:处理
0000000036754678后得到36754678 - 特殊情况:如果变量全为0(如
00000000),上述语句会返回空字符串,可通过判断补0:
IF(TRIM(LEADING '0' FROM your_variable) = '', '0', TRIM(LEADING '0' FROM your_variable))
SQL Server
版本2022及以上
支持TRIM的LEADING参数,用法同MySQL:
TRIM(LEADING '0' FROM your_variable)
低版本(2022以前)
使用PATINDEX定位第一个非0字符,再截取子串:
SUBSTRING(your_variable, PATINDEX('%[^0]%', your_variable), LEN(your_variable))
- 特殊情况:全0变量会返回NULL,可通过
ISNULL补0:
ISNULL(SUBSTRING(your_variable, PATINDEX('%[^0]%', your_variable), LEN(your_variable)), '0')
Oracle
使用LTRIM函数指定移除前导的0:
LTRIM(your_variable, '0')
- 特殊情况:全0变量返回空,可通过CASE语句补0:
CASE WHEN LTRIM(your_variable, '0') IS NULL OR LTRIM(your_variable, '0') = '' THEN '0' ELSE LTRIM(your_variable, '0') END
内容的提问来源于stack exchange,提问作者Rukku
相关产品推荐
相关产品推荐

