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 查询以查找由字母分隔的重复项的主要内容,如果未能解决你的问题,请参考以下文章