首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询在Oracle 11g上工作,但在Oracle8i上失败

查询在Oracle 11g上工作,但在Oracle8i上失败
EN

Stack Overflow用户
提问于 2014-02-14 07:29:24
回答 2查看 114关注 0票数 0

我正在Oracle 11g中运行这个查询,没有问题:

代码语言:javascript
复制
select (case
         when seqnum = 1 then
          '1'
         when seqnum = cnt then
          '0'
       end) as value1,
       (case
         when seqnum = 1 then
          t.BEGIN_DT
         when seqnum = cnt then
          t.END_DT
       end) as TIME1,      
       t4.UNIT1 || '.SUBBATCH_TRIGGER' TAG     
  from (select t.*,
               row_number() over(partition by t.BATCH_ID, t.plant_unit, t3.ID2 order by t.BEGIN_DT) as seqnum,
               count(*) over(partition by t.BATCH_ID, t.plant_unit, t3.ID2) as cnt
          from SCH2.tb_pg_unit_stap t
join (select ID1,batch_id from SCH2.VW_BATCH) t2 on t.BATCH_ID = t2.BATCH_ID
join (select ID2,ID1 from SCH1.STEP) t3 on t3.ID1 = t2.ID1) t
join SCH2.TB_W_MACHINE t4 on t4.plant_unit = t.plant_unit
where (seqnum = 1
    or seqnum = cnt) AND (t.BEGIN_DT > '01-jan-2013' AND t.BEGIN_DT < '01-feb-2013');

但是当我在Oracle8i (8.7.1)中运行它时,它会给出ORA-00933: SQL命令没有正确结束。

在Oracle8i中运行sql命令时,我必须知道有什么特别的考虑吗?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-14 07:38:36

从9i开始使用AFAK case命令。

票数 2
EN

Stack Overflow用户

发布于 2019-08-05 22:01:16

好的-行程-向下-记忆-车道时间:

代码语言:javascript
复制
select decode(seqnum,
                1,    '1',
                cnt,  '0') as value1,
       decode(seqnum,
                1,    t.BEGIN_DT,
                cnt,  t.END_DT) as TIME1,      
       t4.UNIT1 || '.SUBBATCH_TRIGGER' TAG     
  from (select t.*,
               row_number() over (partition by t.BATCH_ID, t.plant_unit, t3.ID2
                                  order by t.BEGIN_DT) as seqnum,
               count(*) over (partition by t.BATCH_ID, t.plant_unit, t3.ID2) as cnt
          from SCH2.tb_pg_unit_stap t
          INNER join (select ID1, batch_id
                        from SCH2.VW_BATCH) t2
            on t.BATCH_ID = t2.BATCH_ID
          INNER join (select ID2, ID1
                        from SCH1.STEP) t3
            on t3.ID1 = t2.ID1) t
  INNER join SCH2.TB_W_MACHINE t4
    on t4.plant_unit = t.plant_unit
  where (seqnum = 1 or seqnum = cnt) AND
        (t.BEGIN_DT > '01-jan-2013' AND t.BEGIN_DT < '01-feb-2013');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21773284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档