Нечетное четное число в одном запросе Oracle SQL - PullRequest
0 голосов
/ 30 сентября 2018

Я хочу список из Odd и Even числа в одном запросе, я просто выясняю Только один из нечетных или четных, ниже мой код

SELECT * FROM 
 ( SELECT T.C_DATE,T.C_NAME,T.C_TIME,L_UID, ROWNUM RANK 
     FROM TENTER T)
    WHERE MOD(RANK,2)=1
      AND C_DATE BETWEEN :P_FROM_DATE AND :P_TO_DATE 
    ORDER BY L_UID, C_TIME ASC;

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Вы должны быть в состоянии сделать это без подзапроса.Предполагая, что вы просто хотите ярлык в каждой строке:

SELECT T.C_DATE, T.C_NAME, T.C_TIME, L_UID, ROWNUM as RANK,
       (CASE WHEN MOD(ROWNUM, 2) = 0 THEN 'EVEN' ELSE 'ODD' END) as even_odd_label 
FROM TENTER T
WHERE C_DATE BETWEEN :P_FROM_DATE AND :P_TO_DATE 
ORDER BY L_UID, C_TIME ASC;
0 голосов
/ 30 сентября 2018

вы можете использовать:

SELECT decode(mod(TT.RANK,2),0,'Even','Odd') as rank,
       TT.*
  FROM 
 ( SELECT T.C_DATE,T.C_NAME,T.C_TIME,L_UID, 
          ROW_NUMBER() OVER (ORDER BY L_UID, C_TIME ASC) as RANK 
     FROM TENTER T) TT
    WHERE C_DATE BETWEEN :P_FROM_DATE AND :P_TO_DATE
    ORDER BY L_UID, C_TIME ASC;

PS Кстати, я предлагаю вам использовать функцию ROW_NUMBER с определенными номерами заказа вместо сгенерированной системой ROWNUM псевдоколонки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...