首页 > 解决方案 > 查找没有对应记录且末尾有扩展名的记录

问题描述

我想查找末尾带有(.XX)扩展名的记录,而这些记录最后没有没有扩展名(.XX)的相应记录。如果可能的话,我想使用“存在”或“不存在”的解决方案,因为我很困惑为什么我的没有输出。

输入

可乐
值1.XX
价值1
值2.XX
价值3

**预期输出**

可乐
值2.XX

代码

选择 *
从表 1 作为
在哪里
对 (table1.[col_a],3) = ".XX"
并且存在(
从 table1 b 中选择 1 其中 Left(a.[col_a], Len(a.[col_a]) - 3) = b.[col_a]
)

标签: sql

解决方案


嗯。你

select t1.*
from table1 t1
where t1.col_a like '%.XX' and
      not exists (select 1
                  from table1 tt1
                  where t1.col_a = tt1.col_a || '.XX'
                 );

注意:您尚未指定数据库,因此它使用 ISO/ANSI 标准||进行字符串连接。您可以查看 RDBM 的文档以了解正确的连接技术。


推荐阅读