Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle-从字符串值中删除起始零_Oracle_Plsql - Fatal编程技术网

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