day of Week 표시 0 5 976

by 마늘장아찌 [SQL Query] [2019.07.16 11:39:57]


컬럼에 week를 표시하는값이 들어 있습니다.

1234567 (1은 월... 7은 일요일을 의미합니다.)

해당 week에 대한 check 표시를 하기 위하여 매칭이 되면 1로 안되면 0으로 쪼개고 싶은데요...

아래 샘플의 경우 1110111 과 0000011로 replace되어 질수 있나요?

1개 컬럼이 별도 7개 컬럼으로 쪼개졌으면 합니다.

SELECT *
FROM (
SELECT '123567' v FROM dual UNION ALL
SELECT '67' v FROM dual)

by 우리집아찌 [2019.07.16 13:14:53]
완벽히 같지는 않아요

select translate( ‘1234567’ , v , ‘@@@@@@@‘) 
  from ....

 


by 마늘장아찌 [2019.07.16 13:41:57]

좀 무식한 감이 있습니다만, 아래처럼 처리해봤습니다.

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)


by 소주쵝오 [2019.07.16 14:17:56]
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)

 


by jkson [2019.07.16 16:34:27]
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)

 


by 마농 [2019.07.19 08:45:22]
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
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입