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

问题描述 投票:0回答:1

我正在尝试通过删除出现在其他较大值内的值来缩小表的大小。例如

     Column
Row1 potato234
Row2 to2
Row3 ot
Row4 potatos

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

我已经尝试为其编写代码,但是无法在DELETE语句中使用内部联接,我不知道如何在没有子查询返回多个元素的情况下进行操作。

DELETE FROM dbo.ENTRY_VALUES
WHERE LENGTH(ENTRIES) < (SELECT LENGTH(ENTRIES) FROM dbo.ENTRY_VALUES)
AND ENTRIES LIKE ('%' || (SELECT ENTRIES FROM dbo.ENTRY_VALUES) || '%')
sql teradata teradata-sql-assistant
1个回答
0
投票

您应该可以使用:

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
                );
© www.soinside.com 2019 - 2024. All rights reserved.