SQL 查询以查找由字母分隔的重复项

Posted

技术标签:

【中文标题】SQL 查询以查找由字母分隔的重复项【英文标题】:SQL Query to find duplicates separated by a letter 【发布时间】:2021-12-04 14:27:22 【问题描述】:

我有一份法学院课程的 Excel 表格,我需要查找重复项。在这种情况下如何描述重复是课程编号,末尾有一个字母。

Ex course number 500,该课程的副本将是 500A、500B、500c 等。 我需要挑出所有重复项

【问题讨论】:

你试过什么?为什么需要 SQL 查询?查找和消除重复项是 Excel 中的内置操作。 所以我不需要消除它们。我尝试了条件格式,然后突出显示重复项,但重复项再次没有作为重复项输入到 Excel 工作表中。防爆是 500、500A。但我需要将它们从 Excel 表中拉出来,而不仅仅是突出显示 【参考方案1】:

解决方案建议: 如果你有数据 INSERT INTO "main"."courses" ("id", "name") VALUES ('1', '500'),('2', '400'),('3', '500A'),('4', '500B'),('5', '300'); 您可以执行以下请求:

with cte as (select id, name, case when length(name)> 3 then SUBSTR(name, 1,LENGTH(name)-1) else name end as root
from courses )
select *
from courses a
inner join cte b on b.root = a.name
where a.name != b.name 

这只是一个例子。根据您的数据库管理系统,有不同的方法可以截断课程编号的最后一个字符。

【讨论】:

以上是关于SQL 查询以查找由字母分隔的重复项的主要内容,如果未能解决你的问题,请参考以下文章

sql SQL查询以查找表中的列中的重复项,从而更改列的排序规则以确保重复项检查为大小写

sql SQL查询使用单个值查找表中的重复项。

SQL查询以从逗号分隔的列中检索值[重复]

SQL查询语句,怎样查询重复数据

SQL 查找具有多个字段的重复项(没有唯一 ID)

用于计算重复项的 SQL 查询 [重复]