(master..spt_values, ), , , , :
:
CREATE TABLE Something (Title NVARCHAR(MAX));
INSERT Something (Title)
VALUES ('Blogroll')
,('Bottom Menu')
,('Business')
,('Entertainment')
,('extend')
:
DECLARE @SearchTerm NVARCHAR(MAX);
SET @SearchTerm = 'Blogroller';
WITH CTE_SearchBroken AS
(
SELECT LEFT(@SearchTerm, number) BrokenTerm
FROM master..spt_values n
WHERE n.type = 'P' AND n.number <= LEN(@SearchTerm)
)
, CTE_PreliminaryResults AS
(
SELECT *, LEN(BrokenTerm) AS BrokenAt
FROM Something s
LEFT JOIN CTE_SearchBroken b ON s.Title LIKE '%' + b.BrokenTerm + '%'
)
SELECT Title
, MAX(BrokenAt) AS BrokenAt
, CASE WHEN LEN(@SearchTerm) = MAX(BrokenAt) THEN 1 ELSE 0 END AS Found
FROM CTE_PreliminaryResults
GROUP BY Title