1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| CREATE TABLE TbPhrase
(
IDPhrase INT IDENTITY CONSTRAINT PK_TbPhrase PRIMARY KEY,
Phrase VARCHAR(128)
)
GO
INSERT INTO dbo.TbPhrase VALUES ('C''est le printemps chic chic')
INSERT INTO dbo.TbPhrase VALUES ('Il fait beau demain')
GO
;WITH
CTE (IDPhrase, Deb, Fin, Indice) AS
(
SELECT T.IDPhrase,
1 Deb,
CHARINDEX(CHAR(32), T.Phrase + CHAR(32)) Fin,
1 AS Indice
FROM dbo.TbPhrase AS T
UNION ALL
SELECT T.IDPhrase,
CTE.Fin + 1,
CHARINDEX(CHAR(32), T.Phrase + CHAR(32), CTE.Fin + 1),
CTE.Indice + 1
FROM CTE
JOIN dbo.TbPhrase AS T ON T.IDPhrase = CTE.IDPhrase
WHERE CHARINDEX(CHAR(32), T.Phrase + CHAR(32), CTE.Fin + 1) > 0
)
SELECT T.Phrase,
SUBSTRING(T.Phrase, CTE.Deb , CTE.Fin - CTE.Deb) AS Mots
FROM CTE
JOIN dbo.TbPhrase AS T ON T.IDPhrase = CTE.IDPhrase
ORDER BY CTE.IDPhrase |
Partager