안녕하세요 데이터 조회 시 조회 된 데이터가 25자 이상인 경우 단어 단위로 줄바꿈 처리 하고 싶습니다.
조회 된 데이터를 화면에서 출력 할 때 해당 영역이 고정px로 지정 되어 있어 줄바꿈을 하려고 하는데 25자에서 단어 여부를 판단을 어떻게 해야 하는지가 궁금합니다.
감사합니다.
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
;