Извлекает все слова, разделенные пробелом, из mylib.myfile [mytext] и помещает их в таблицу с двумя столбцами.Я ограничиваю длину слова до 15, потому что в действительности пользователи в любом случае вводят слова длиннее 15 символов, и я, вероятно, уже нашел совпадение 1-го числа 15-го числа и представил список пользователю.
Я скопировал эту технику с паутины.
CREATE TABLE mylib.myidx AS
(
WITH SPLITTER (ID, START, E, SECTION, ORIGINAL, NUM) AS
( SELECT UID, 1, LOCATE(' ', mytext), CAST('' AS VARCHAR(8000)), mytext, 0
FROM mylib/myfile
UNION ALL
SELECT ID, E + 1,
CASE WHEN LOCATE(' ',ORIGINAL, E + 1) > 0
THEN LOCATE(' ', ORIGINAL, E + 1)
ELSE LENGTH(ORIGINAL) + 1
END,
SUBSTRING(ORIGINAL, START, E - START),
ORIGINAL, NUM + 1
FROM SPLITTER
WHERE E > START
)
SELECT ID AS UID
,CAST(SECTION AS VARCHAR(15)) AS SECTION
FROM SPLITTER
WHERE LENGTH(SECTION)>1
)
WITH DATA;