查找没有末尾扩展名的相应记录的记录

时间:2018-10-23 18:50:53

标签: sql

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

输入


col_a
value1.XX
value1
value2.XX
value3

**预期输出**


col_a
value2.XX

代码


SELECT *
FROM table1 as a
where
right (table1.[col_a],3) = ".XX"
and  exists(
select 1 from table1 b where  Left(a.[col_a], Len(a.[col_a]) - 3)  = b.[col_a]
)

1 个答案:

答案 0 :(得分:0)

嗯。你

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的文档以了解正确的串联技术。