我有一个以列 node_id 为数字的表,其中,
node_id
0
2000
300300300
400400400
我想要得到的是将此数字转换为字符串,并在右边每第三个数字后添加“-”。所以预期的输出是,
node_id
000-000-000
000-002-000
300-300-300
400-400-400
这是我正在使用的查询,
select TO_CHAR( lpad(t1.node_id,9,'0'), '999G999G999', 'NLS_NUMERIC_CHARACTERS="-"'), node_id from table t1;
我得到的输出是,
node_id
0
2-000
300-300-300
400-400-400
我的问题是我还需要在每条记录前面加上“0”,使总长度为 11。我尝试在 lpad 周围立即添加 to_char,以便将 lpad 输出转换为 varchar,但这也给出了相同的输出。