我有这个数据库 http://sqlfiddle.com/#!18/24f134/4/0 其中将提取最长单词,单词中包含的点不包含任何点。 我需要使单词的列(第4列)与每行(包含该单词)的点都不匹配
答案 0 :(得分:0)
如果我的理解正确,那么您想要具有分数的每一行都匹配短语(没有分数)。 APPLY
在这种情况下非常有用:
SELECT w.id, w.phrase, w.points, w2.phrase
FROM words w OUTER APPLY
(SELECT TOP (1) w2.*
FROM words w2
WHERE w2.phrase LIKE concat('%', w.phrase, '%') and w2.points = 0
ORDER BY len(w2.phrase) DESC
) w2
WHERE w.points > 0;
Here是db <>小提琴。