Query works on Oracle 11g but fails on Oracle 8i

后端 未结 2 1564
刺人心
刺人心 2021-01-26 11:43

I am running this query in Oracle 11g with no problem:

select (case
         when seqnum = 1 then
          \'1\'
         when seqnum = cnt then
          \'0\'         


        
相关标签:
2条回答
  • 2021-01-26 12:16

    OK - trip--down-memory-lane time:

    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 讨论(0)
  • 2021-01-26 12:34

    AFAK case command was introduced since 9i.

    0 讨论(0)
提交回复
热议问题