To remove leading zeroes you can use regexp_replace(col, '^0+', ''), then concatenate using concat_ws():
with mytable as (
select
'0123' Column1, '12342567' column2, '001' column3
)
select concat_ws('-',
regexp_replace(Column1,'^0+',''),
regexp_replace(Column2,'^0+',''),
regexp_replace(Column3,'^0+','')
)
from mytable;
Result:
123-12342567-1
In case some column value is NULL, concat_ws will skip it along with separator. For example if column2 is NULL, the result will be 123-1
If you want to transform NULL values to something else, use NVL(col, 'value if NULL') function, for example regexp_replace(NVL(column2, ''),'^0+','') will return empty string instead of NULL and concat_ws will return 123--1