[SQL 쿼리조회] 특정필드 값 4자리마다 '-' 표시하기 0 4 932

by 쿼리냠냠 [SQL Query] [2018.10.31 14:43:05]


안녕하세요. 그루비회원님들 쿼리조회시 궁금한것이 있어 문의드립니다.

*USER 테이블정보*

SELECT * FROM USER;
이름 핸드폰번호 일련번호
홍길동 010-1234-1234 1234123412341234
김길동 010-1234-1234 6789678967896789

 

1) 제가원하는 쿼리의 결과값은 다음과 같습니다.
==> 일련번호의 값을 조회 시 4자리마다 '-'표시

이름 핸드폰번호 일련번호
홍길동 010-1234-1234 1234-1234-1234-1234
김길동 010-1234-1234 6789-6789-6789-6789

 

감사합니다.

좋은하루보내세요.

 

by 마농 [2018.10.31 15:38:52]

16자리 고정인가요?


by 쿼리냠냠 [2018.10.31 15:41:29]

안녕하세요. 마뇽님 16자리 고정입니다.
특정문자를 빼보기하고 넣어보기도하면서 쿼리문으로 장난을 쳐보있는데요.

다른방법이 없을지 궁금해서 질문글을 올렸습니다.

좋은하루보내세요.


by 사오정 [2018.10.31 15:47:35]

Select  listagg(ch, '-') within group(order by cnt)

from

( select level  cnt ,

substr('123456789123456789',(level*4)-3 ,4) ch

from dual

Connect by level<=ceil(length('123456789123456789')/4)

)

 

휴대폰으로 하니 오타가 있을수있습니다


by 마농 [2018.10.31 15:49:23]
WITH t AS
(
SELECT '1234123412341234' sno FROM dual
UNION ALL SELECT '6789678967896789' FROM dual
)
SELECT sno
     , SUBSTR(REGEXP_REPLACE(sno, '(....)', '-\1'), 2) x
     , REGEXP_REPLACE(sno, '(....)(....)(....)(....)', '\1-\2-\3-\4') x
     , REGEXP_REPLACE(sno, '(.{4})(.{4})(.{4})(.{4})', '\1-\2-\3-\4') x
     , REPLACE(TO_CHAR(sno, '9999,9999,9999,9999'), ',', '-') x
     , SUBSTR(sno,  1, 4) || '-' ||
       SUBSTR(sno,  5, 4) || '-' ||
       SUBSTR(sno,  9, 4) || '-' ||
       SUBSTR(sno, 13, 4) AS x
  FROM t
;

 

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