Oracle11g 显示where子句中不匹配的记录

Oracle11g 显示where子句中不匹配的记录,oracle11g,Oracle11g,我需要显示与where子句不匹配的记录 示例-从城市表格中选择*,其中城市位于'aa'、'bb'、'cc'、'dd'、'ee'中 表中仅显示aa、bb、cc,表中未显示dd和ee。但是,我仍然需要显示dd&ee。我不确定您希望输出的确切外观。如果city='ee'中没有数据,您希望显示什么?像这样的 SELECT * FROM (SELECT key AS A_key, one AS A_one, two AS A_two FROM cityTable WHERE one='aa') AS A

我需要显示与where子句不匹配的记录

示例-从城市表格中选择*,其中城市位于'aa'、'bb'、'cc'、'dd'、'ee'中


表中仅显示aa、bb、cc,表中未显示dd和ee。但是,我仍然需要显示dd&ee。

我不确定您希望输出的确切外观。如果city='ee'中没有数据,您希望显示什么?像这样的

SELECT * FROM
(SELECT key AS A_key, one AS A_one, two AS A_two FROM cityTable WHERE one='aa') AS A
JOIN
(SELECT key AS E_key, one AS E_one, two AS E_two FROM cityTable WHERE one='ee') AS E
ON A_key=E_key 
...etc.  
编辑:或许就是这样:
从SELECT city中选择city,按城市从cityTable GROUP中将*计算为c,其中c=0

我不确定您希望输出的确切外观。如果city='ee'中没有数据,您希望显示什么?像这样的

SELECT * FROM
(SELECT key AS A_key, one AS A_one, two AS A_two FROM cityTable WHERE one='aa') AS A
JOIN
(SELECT key AS E_key, one AS E_one, two AS E_two FROM cityTable WHERE one='ee') AS E
ON A_key=E_key 
...etc.  
编辑:或许就是这样:
从SELECT city中选择city,从cityTable GROUP中按城市将*计算为c,其中c=0

据我所知,您说过“dd”和“ee”不在表中,但您仍然需要它,因此可以使用union all实现它。但请记住,“dd”和“ee”行的列将始终为空,因为您的citytable中不存在任何记录


据我所知,你说的'dd'和'ee'不在表中,但你仍然需要它,所以你可以实现它使用一个联盟所有。但请记住,“dd”和“ee”行的列将始终为空,因为您的citytable中不存在任何记录


你可能正在寻找这样的东西。IN条件与包含IN列表中唯一不同值的表的内部联接相同。您需要的是外部连接。您需要有一个表,而不是列表中的。在下面的解决方案中,我将演示如何动态创建此帮助器表;还有其他几种方法,这正好说明了这一点

select deptno, ename from emp where deptno in (10, 50, 80);

DEPTNO  ENAME
------  ------
10      CLARK
10      KING
10      MILLER


with h ( deptno ) as (
  select 10 from dual union all
  select 50 from dual union all
  select 80 from dual
)
select h.deptno, e.ename
from h left outer join emp e
on h.deptno = e.deptno
;

DEPTNO  ENAME
------  ------
10      CLARK
10      KING
10      MILLER
50  
80  

你可能正在寻找这样的东西。IN条件与包含IN列表中唯一不同值的表的内部联接相同。您需要的是外部连接。您需要有一个表,而不是列表中的。在下面的解决方案中,我将演示如何动态创建此帮助器表;还有其他几种方法,这正好说明了这一点

select deptno, ename from emp where deptno in (10, 50, 80);

DEPTNO  ENAME
------  ------
10      CLARK
10      KING
10      MILLER


with h ( deptno ) as (
  select 10 from dual union all
  select 50 from dual union all
  select 80 from dual
)
select h.deptno, e.ename
from h left outer join emp e
on h.deptno = e.deptno
;

DEPTNO  ENAME
------  ------
10      CLARK
10      KING
10      MILLER
50  
80  

以下内容应清晰明了-***************************************************************************************************************************************************************************************************************我的查询-从城市表格中选择*,其中城市位于“aa”、“bb”、“cc”、“dd”、“ee”中;***************************************************************************************************************************************************************************************************************************************************************************************************************************我的输出应该是where子句中未返回任何记录的值……即dd&ee,仅从选择城市,按c=0的城市将*从城市表组中计算为c?以下内容应清楚-*************************************************************************************城市表国家/地区aa aa bb bb cc cc******************************************************************************************************我的查询-从城市表中选择*在“aa”、“bb”、“cc”、“dd”和“ee”中的城市表;*********************************************************************************************************************************************************************************************************************************************************************我的输出应该是where子句中未返回任何记录的值…….即dd&ee仅从选择城市中选择城市,按城市表组计算c,其中c=0?