2 варианта, в зависимости от того, что вы пытаетесь сделать.
SP COMMA_TO_TABLE (доступно только в версии 10.1 и выше на LUW)
Рекурсивный запрос
Это может быть один из вариантов
CREATE TABLE TLIST (ID INTEGER, LISTVALUES VARCHAR(100))
INSERT INTO TLIST VALUES(1, '10,11,12,13,14,15')
INSERT INTO TLIST VALUES(2, '25,26,27,28,29')
select * from tlist
ID LISTVALUES
----------- ------------------
1 10,11,12,13,14,15
2 25,26,27,28,29
WITH pquery (ID, wordnum, word, remainder)
AS
(
SELECT base.ID, 1,
CASE WHEN LOCATE (',', LISTVALUES) > 0 THEN
SUBSTR (LISTVALUES, 1, LOCATE (',', LISTVALUES) - 1)
ELSE
LISTVALUES
END word,
CASE WHEN locate (',', LISTVALUES) > 0 THEN
LTRIM (SUBSTR (LISTVALUES, LOCATE (',', LISTVALUES) + 1))
ELSE
NULL
END remainder
FROM TLIST base
UNION ALL
SELECT ID, wordnum + 1,
CASE WHEN LOCATE (',', remainder) > 0 then
SUBSTR (remainder, 1, LOCATE (',', remainder) - 1)
ELSE
remainder
END word,
CASE WHEN LOCATE (',', remainder) > 0 THEN
LTRIM (SUBSTR (remainder, LOCATE (',', remainder) + 1))
ELSE
NULL
END remainder
FROM pquery t0
WHERE (t0.remainder IS NOT NULL )
AND (wordnum < 100)
)
SELECT ID, WORD FROM pquery pq order by ID , wordnum;
ID WORD
----------- ----------
1 10
1 11
1 12
1 13
1 14
1 15
2 25
2 26
2 27
2 28
2 29
PS предикат (wordnum < 100)
в предложении WHERE необходимо избегать бесконечного l oop, но, конечно, вы можете изменить предел.
С уважением, Самуэль Писарро