Стандарт ANSI SQL для ключевого слова ORACLE MINUS

У меня есть запрос, который я хочу совместим со стандартом ANSI SQL. В этом запросе оракула используется работа с ключом MINUS, и я хочу использовать ANSI SQL, который помещается для ключевого слова MINUS.

SELECT   'F' selected,
         UPPER ((   a.business
                 || ' '
                 || a.data_source
                 || ' '
                 || a.frequency
                 || ' '
                 || a.case_symbol
                )
               ) AS display_name,
         SUBSTR ((   a.business
                  || '_'
                  || a.data_source
                  || '_'
                  || a.frequency
                  || (CASE
                         WHEN a.case_symbol IS NULL
                            THEN ''
                         ELSE '_' || a.case_symbol
                      END
                     )
                 ),
                 0,
                 30
                ) AS summary_schema_name,
                 (SELECT ef.frequency_name
            FROM etl_frequencies@etlmgr_srv_ubatchh_lx ef
           WHERE ef.frequency = a.frequency) data_frequency_name,
         a.case_symbol subset_key, '' subset_name
    FROM (SELECT DISTINCT ebdf.business, ebdf.data_source, ebdf.frequency,
                          c.case_symbol
                     FROM  etl_bus_datasrc_frequencies@etlmgr_srv_ubatchh_lx ebdf INNER JOIN etl_rulesets@etlmgr_srv_ubatchh_lx er
                          ON (    ebdf.business = er.business
                              AND ebdf.data_source = er.data_source
                              AND ebdf.frequency = er.frequency
                             )
                          LEFT OUTER JOINe etl_db_output_fact_rules@etlmgr_srv_ubatchh_lx r
                          ON er.ruleset_id = r.ruleset_id
                          LEFT OUTER JOIN etl_db_output_fact_cases@etlmgr_srv_ubatchh_lx c
                          ON r.db_output_fact_rule_id =
                                                      c.db_output_fact_rule_id
          MINUS
          SELECT c.business_unit_key, e.data_source_key, f.data_frequency_key,
                 g.data_source_subset
            FROM  tb_module_summary_schema a INNER JOIN  tb_module b
                 ON a.module = b.module
                 INNER JOIN  tb_business_unit c
                 ON b.business_unit_id = c.business_unit_id
                 INNER JOIN  tb_summary_source_type d
                 ON a.summary_source_type_id = d.summary_source_type_id
                 INNER JOIN  tb_data_source e
                 ON d.data_source_id = e.data_source_id
                 INNER JOIN  tb_data_frequency f
                 ON d.data_frequency_id = f.data_frequency_id
                 LEFT OUTER JOIN  tb_data_source_subset g
                 ON d.data_source_subset_id = g.data_source_subset_id
                 ) a
ORDER BY a.business, a.data_source, a.frequency, a.case_symbol   

person Jack    schedule 26.09.2014    source источник
comment
Это будет except   -  person a_horse_with_no_name    schedule 26.09.2014
comment
Невозможно продолжать выполнять этот запрос в Oracle после того, как вы замените ключевое слово minus на except, в чем проблема?   -  person neshkeev    schedule 26.09.2014
comment
EXCEPT не работает в Oracle, поэтому, если вы хотите, чтобы он был совместим с ANSI SQL и работал в Oracle, вам нужно переписать запрос, используя конструкцию NOT EXISTS или NOT IN.   -  person Ronnis    schedule 26.09.2014
comment
Я хочу, чтобы этот запрос был совместим с ANSI SQL 92, но ключевое слово MINUS является для меня препятствием.   -  person Jack    schedule 26.09.2014
comment
Давайте уточним: вы не хотите, чтобы этот запрос выполнялся в Oracle, вы хотите, чтобы этот запрос был совместим со стандартом ANSI-92, или вы хотите переписать этот запрос, чтобы он был совместим со стандартом ANSI-92 и выполнялся в Oracle, что вам нужно?   -  person neshkeev    schedule 26.09.2014
comment
Замена CODE для ключевого слова MINUS.   -  person Jack    schedule 26.09.2014


Ответы (1)


см. внешнее соединение

Выполнение INTERSECT и MINUS в MySQL

person ninjabber    schedule 26.09.2014
comment
Ссылка не работает - person Marco; 24.09.2019