删除字符串值出现在另一个更大的行值内的行

Delete rows where string value appears inside another row value that is larger

我试图通过删除出现在其他较大值内的值来使 table 变小。例如

     Column
Row1 potato234
Row2 to2
Row3 ot
Row4 potatos

我想要的结果是从 table 中删除第 2 行和第 3 行,因为它们都出现在比它们大的另一行中。

我曾尝试为其编写代码,但无法在 DELETE 语句中使用内部联接,如果没有子查询 return 多个元素,我不知道该怎么做。

DELETE FROM dbo.ENTRY_VALUES
WHERE LENGTH(ENTRIES) < (SELECT LENGTH(ENTRIES) FROM dbo.ENTRY_VALUES)
AND ENTRIES LIKE ('%' || (SELECT ENTRIES FROM dbo.ENTRY_VALUES) || '%')

您应该可以使用:

delete from entry_values
   where exists (select 1
                 from entry_values ev2
                 where ev2.entry like '%' || entry_values.entry || '%' and
                       ev2.entry <> entry_values.entry
                );