假设我有一个包含两部分组合键的表,以及4条记录,如下所示:
KEY_PART_1 KEY_PART_2 A 1 B 1 C 2 C 3
我想编写一些动态SQL,只使用“WHERE IN”子句选择记录B,1和C,而不选择A,1或C,3.
有没有办法在没有临时表的情况下做到这一点?
这并不重要,但我们目前正在使用Oracle,并希望尽快转向PostgreSQL.
解决方法
此语法适用于Oracle和PostgreSQL:
SELECT * FROM table_name WHERE (key_part_1,key_part_2) IN ( ('B',1),('C',2) );