배분정렬을 구현하려고 합니다. 0 3 734

by 정규직 [SQL Query] [2019.02.28 10:33:10]


안녕하세요.

한글(hwp)의 배분정렬처럼 정해진 길이(80byte)안에서 글자 사이를 일정하게 띄우는 기능을
( ex.간격띄기 → 간      격     띄      기 )
구현하려고 하는데... 방법이 있을지 고수님들의 도움 부탁드립니다.

좋은 하루 되세요.

by jkson [2019.02.28 10:49:21]
with t as
(
select '간격띄기' txt from dual union all
select '테스트' txt from dual union all
select 'space' txt from dual union all
select 'we are the champion' txt from dual union all
select '테스트테스트테스트테스트테스트' txt from dual
)
select regexp_replace(txt,'(.)','\1'||lpad(' ',trunc((80-length(txt))/(length(txt)-1)),' ')) txt_space 
from t

정확하게 되지는 않네요.


by 정규직 [2019.02.28 11:42:24]

답변 감사합니다.


by 마농 [2019.02.28 11:35:07]

한글이 2칸을 차지하는데... 언어셋에 따라
WIN949 는 그나마 2 byte 로 칸수와 Byte 가 일치해서 다행이지만.
UTF8 의 경우엔 3 Byte 로 칸수와 Byte 가 불일치해서 애매합니다.

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