如何选择字符长度和列值?

时间:2019-05-19 13:41:36

标签: sql sql-server

我有这个数据库 http://sqlfiddle.com/#!18/24f134/4/0 其中将提取最长单词,单词中包含的点不包含任何点。 我需要使单词的列(第4列)与每行(包含该单词)的点都不匹配

1 个答案:

答案 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 <>小提琴。