一尘不染

使用复合键的WHERE_IN查询?

sql

假设我有一个包含两部分组成的组合键和4条记录的表,如下所示:

KEY_PART_1 KEY_PART_2
A          1
B          1
C          2
C          3

我想编写一些动态SQL,以使用“ WHERE IN”子句仅选择记录B,1和C,2, 而不 选择A,1或C,3。

没有临时表,有什么方法可以做到这一点吗?

没关系,但是我们目前正在使用Oracle,并希望尽快迁移到PostgreSQL。


阅读 127

收藏
2021-03-17

共1个答案

一尘不染

此语法适用于Oracle和PostgreSQL:

SELECT *
  FROM table_name
 WHERE (key_part_1, key_part_2) IN ( ('B',1), ('C',2) );
2021-03-17