완벽히 같지는 않아요 select translate( ‘1234567’ , v , ‘@@@@@@@‘) from ....
좀 무식한 감이 있습니다만, 아래처럼 처리해봤습니다.
SELECT v
,DECODE(INSTR(v ,'1'),0,0,1) w1
,DECODE(INSTR(v ,'2'),0,0,1) w2
,DECODE(INSTR(v ,'3'),0,0,1) w3
,DECODE(INSTR(v ,'4'),0,0,1) w4
,DECODE(INSTR(v ,'5'),0,0,1) w5
,DECODE(INSTR(v ,'6'),0,0,1) w6
,DECODE(INSTR(v ,'7'),0,0,1) w7
FROM (
SELECT '123567' v FROM dual UNION ALL
SELECT '67' v FROM dual)
SELECT replace(regexp_replace(translate(1234567, v, 9999999), '[^9]', 0), 9, 1) as v1
, translate(translate(1234567, v, 9999999), '12345679', '00000001') as v2
FROM (
SELECT '123567' v FROM dual UNION ALL
SELECT '145' v FROM dual)
select translate('1234567', v||'1234567' , lpad('1',length(v),'1')||'0000000' ) val
from (select '123567' v from dual union all
select '67' v from dual)
SELECT v
, SIGN(INSTR(v, '1')) "1"
, SIGN(INSTR(v, '2')) "2"
, SIGN(INSTR(v, '3')) "3"
, SIGN(INSTR(v, '4')) "4"
, SIGN(INSTR(v, '5')) "5"
, SIGN(INSTR(v, '6')) "6"
, SIGN(INSTR(v, '7')) "7"
FROM t
;