首页 > 解决方案 > 在 SQL 查询中创建紧凑的“WHERE”过滤器

问题描述

我有一个长列表(或一个包含 3 到 4 列数据的表),同时需要在查询中得到满足,如下所示:

A    B   C
x1   y1  z1
x2   y2   z2
x3   y3   z3
.
.
.
xn    yn   zn

有没有一种方法可以创建一个表达式/函数等或单独的列表等,我可以将其调用到 SQL 查询中(而不是显式编写它):

所以假设,我有这个列表作为表 X 中的矩阵/列表,我可以使用

我可以使用类似的示例 SQL 查询

SELECT *
FROM TABLE B
WHERE CONDITION  IN  ROWS OF TABLE X 

在这里补充一下,我正在使用 python 驱动程序通过数据库获取数据,而我拥有的表 X 是我在本地创建的。

标签: pythonsqloracle

解决方案


您可以使用in

SELECT b.*
FROM TABLE B
WHERE (b.a, b.b, b.c) IN (SELECT x.a, x.b, x.c FROM X)

推荐阅读