Oracle-从字符串值中删除起始零
我正在使用一个查询Oracle-从字符串值中删除起始零,oracle,plsql,Oracle,Plsql,我正在使用一个查询 SELECT CAST(000027 AS VARCHAR2(15)) FROM dual; 但这会删除起始0000零,只返回27 如何使其返回000027?值000027和27都是数字,与Oracle相同,并且不会看到前导零。最接近您在这里想要的东西可能是将数字/字符串用零填充到固定长度。假设需要长度为6的数字字符串,可以尝试: SELECT LPAD(CAST(000027 AS VARCHAR2(15)), 6, '0') FROM dual; 使用字符串文字而不是
SELECT CAST(000027 AS VARCHAR2(15)) FROM dual;
但这会删除起始0000零,只返回27
如何使其返回000027?值000027和27都是数字,与Oracle相同,并且不会看到前导零。最接近您在这里想要的东西可能是将数字/字符串用零填充到固定长度。假设需要长度为6的数字字符串,可以尝试:
SELECT LPAD(CAST(000027 AS VARCHAR2(15)), 6, '0')
FROM dual;
使用字符串文字而不是数字文字:
SELECT CAST('000027' AS VARCHAR2(15)) FROM dual
尽管演员阵容可能是多余的,这取决于你想做什么
如果你从一个数字开始,那么它可能比你想象的更早失去前导零,因为数字实际上没有前导零
如果您知道应该有多少个数字,则可以填充,或使用to_char代替cast:
如果需要,您仍然可以将其转换为varchar215,但不确定为什么需要什么,除非您将其用作CTAS语句的一部分
SELECT TO_CHAR(000027, 'FM000000') FROM dual