在oracle中查询带有子查询的案例

时间:2014-03-21 23:23:01

标签: sql database oracle oracle10g ddl

我有一个oracle查询。此查询是子查询的情况,但我有一个问题,当我执行查询时,我有以下错误:ORA-00923: FROM keyword not found where expecte

我有一张数字表。

Select * from numbers;
12345
33333
45456
24332
  .
  .
  .

我有其他时间表来过滤表,然后我需要如果表parameters_temp中的参数是1做一个过滤器。如果为1,则使用查询作为2个表之间的内部联接

进行过滤

我的查询是:

select number from numbers where 
number not in (SELECT number 
                            CASE
                            WHEN par.enable = 1
                            THEN (
                                SELECT number FROM NUMBER_FILTER mpf 
                                INNER JOIN service s ON mpf.id_prov = s.id_prov
                                WHERE s.id_service = 30 )
                            END
                            FROM parameters_temp)

谁可以帮我解决我的问题,或者我的错误是什么

3 个答案:

答案 0 :(得分:1)

我认为这部分无效。

SELECT number 
                        CASE

那里似乎缺少一些东西 - 逗号或来自,不确定。

答案 1 :(得分:0)

select number from numbers where 
number not in (SELECT  CASE
                            WHEN par.enable = 1
                            THEN (
                                SELECT number FROM NUMBER_FILTER mpf 
                                INNER JOIN service s ON mpf.id_prov = s.id_prov
                                WHERE s.id_service = 30 ) 
                            END
                            FROM parameters_temp)

答案 2 :(得分:0)

这里缺少par obj的声明

par.enable=1