sql - 删除字符串值出现在另一个更大的行值中的行
问题描述
我试图通过删除出现在其他较大值中的值来缩小表格。例如
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) || '%')
解决方案
您应该能够使用:
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
);
推荐阅读
- c++ - 在函数 c++ 中使用 sizeof(array)/sizeof(array[0])
- android - 在android studio中做JSON时无法分配变量
- python - How to get a dictionary of dictionaries from a text file in python?
- python - pytorch 中的 tf.cast 等价物?
- ruby - Rails 将记录从登台复制到生产
- angular - 带有 Nginx 和 Angular 的 Docker 容器以及带有 Asp.net 核心的其他容器无法通过 nginx 工作获得 rever 代理
- android - ESP8266 - 如果 sdk_wifi_station_scan() 不能 sdk_wifi_station_set_config()
- html - Chrome 和 Safari 浏览器上的占位符故障显示非常适合 mozilla 浏览器
- php - SQLSTATE [HY000]:一般错误:1364 字段“place_of_birthday”没有默认值
- php - PHP:在类定义中找不到正在使用的静态函数。如何找到它?