我有一个问题,我希望使用col5=2206获取表中的所有行,然后选择col2和col3的所有其他行,其中col2和col3的组合与col5的组合相同(例如,在col2 =下面的示例中) 2,col3 = 6)

我还希望将返回的行筛选为col5中具有某些值的行(例如col5 = 4000)。

('101', '2', '6', '2009-12-31', '2206', 'Exempt', '0', '0', '0', '4', '5'),
('102', '2', '6', '2009-12-31', '4000', 'Exempt', '-1', '0', '0', '4', '5'),
('103', '2', '6', '2009-12-31', '1200', '', '1', '0', '0', '4', '5');


我尝试了各种子查询语句。但是无法像在一张桌子上一样工作。这有可能还是我需要创建一个更大的脚本。

最佳答案

您可以使用自我联接来实现所需的目标。

 Select t2.*
   From table t1
   Join table t2 on ( t2.col2 = t1.col2 and t2.col3 = t1.col3 )
  Where t1.col5 = '2206'
    And t2.col5 <> '2206' -- replace that with specific filters like t2.col5 = '4000'
      ;

08-08 04:18