我在查询中遗漏了一些东西。我想从 dba_tables 中选择除表列表之外的所有表。
例如,显示除 HR.DEPT、SCHEMA.TAB 之外的所有内容
dba_tables:
OWNER TABLE_NAME
------ ----------
HR DEPT
HR TEST
SCHEMA TAB
SCHEMA NAMES
TEM TBA
查询后结果:
OWNER TABLE_NAME
------ ----------
HR TEST
SCHEMA NAMES
TEM TBA
我试过的查询:
select owner, table_name from dba_tables
where (owner != 'HR' and table_name != 'DEPT' ) OR (owner != 'SCHEMA' and table_name != 'TAB' )
问题是你的
OR
。当表是模式表DEPT
时HR
,第一个AND
条件为假,但第二个AND
条件为真,因此OR
结果为真,没有行被过滤。尝试
NOT
+AND
: