如何从硬编码uc_id列表中仅筛选team表中存在的记录?
解决方案
你的原SQL查询其实已经实现了需求——WHERE uc_id IN (876,877,878,879,880)会自动筛选出team表中uc_id属于该列表的记录,列表中不存在于表的ID不会返回任何对应行。
如果需要更显式或者灵活的写法(比如后续要动态生成ID列表),可以用INNER JOIN搭配临时ID集合的方式:
cluster_groups as ( select t.uc_id, t.uc_name_imported from team t inner join ( select 876 as uc_id union all select 877 union all select 878 union all select 879 union all select 880 ) as target_ids on t.uc_id = target_ids.uc_id )
这种写法通过INNER JOIN强制只保留两边都匹配的记录,和原查询效果一致,但在处理动态ID列表时更易扩展。
内容的提问来源于stack exchange,提问作者analyst92
相关产品推荐
相关产品推荐

