조회 된 데이터가 25자 이상인 경우 단어 단위로 줄바꿈 처리 하고 싶습니다. 0 1 3,896

by 통사 [SQL Query] [2023.12.18 09:44:29]


안녕하세요 데이터 조회 시 조회 된 데이터가 25자 이상인 경우 단어 단위로 줄바꿈 처리 하고 싶습니다.

조회 된 데이터를 화면에서 출력 할 때 해당 영역이 고정px로 지정 되어 있어 줄바꿈을 하려고 하는데 25자에서 단어 여부를 판단을 어떻게 해야 하는지가 궁금합니다.

감사합니다.

by 마농 [2023.12.18 14:14:03]
WITH t1 AS
(
SELECT '안녕하세요 데이터 조회 시 조회 된 데이터가 25자 이상인 경우 단어 단위로 줄바꿈 처리 하고 싶습니다.' v
  FROM dual
)
, t2 AS
(
SELECT LEVEL lv
     , REGEXP_SUBSTR(v, '[^ ]+', 1, LEVEL) v
  FROM t1
 CONNECT BY LEVEL <= REGEXP_COUNT(v, '[^ ]+')
)
, t3(lv, v, x, rn) AS
(
SELECT lv
     , v
     , LENGTH(v) x
     , 1 rn
  FROM t2
 WHERE lv = 1
 UNION ALL
SELECT c.lv
     , c.v
     , CASE WHEN LENGTH(c.v) + p.x < 25
            THEN LENGTH(c.v) + p.x + 1
            ELSE LENGTH(c.v)
             END x
     , CASE WHEN LENGTH(c.v) + p.x < 25
            THEN p.rn
            ELSE p.rn + 1
             END rn
  FROM t3 p
     , t2 c
 WHERE c.lv = p.lv + 1
)
SELECT rn
     , LISTAGG(v, ' ') WITHIN GROUP(ORDER BY lv) v
  FROM t3
 GROUP BY rn
 ORDER BY rn
;

 

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