【问题标题】:query with a case with a subquery in oracle在 oracle 中使用带有子查询的案例进行查询
【发布时间】:2014-04-29 13:21:36
【问题描述】:

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

我有一张带数字的表格。

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

并且我有其他时态表来过滤表,那么如果表中的参数参数_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)

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

【问题讨论】:

  • CASE 之前 [table] 中缺少第二个选择语句
  • 我有FROM parameters_temp

标签: sql database oracle oracle10g ddl


【解决方案1】:

我认为这部分无效。

SELECT number 
                        CASE

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

【讨论】:

    【解决方案2】:
    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)
    

    【讨论】:

      【解决方案3】:

      这里缺少par obj的声明

      par.enable=1
      

      【讨论】:

        猜你喜欢
        • 2022-08-05
        • 2020-06-13
        • 2021-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-11
        • 2015-10-11
        • 1970-01-01
        相关资源
        最近更新 更多