не в состоянии сделать UNION в Oracle SQL - PullRequest
0 голосов
/ 25 сентября 2019

Я хочу выполнить объединение запроса, но получаю ошибку.

SELECT 
  NB.NETBANKID,
  NB.BANKNAME,
  NBMAP.SORTORDER,
  NB.BANKCODE
FROM VTSMNETBNK NB
INNER JOIN CGCMN.VTMESTRNETBNKMAP NBMAP
ON NBMAP.NETBANKID =NB.NETBANKID
WHERE NBMAP.STOREID=133 AND 
NBMAP.EFFDATE <= SYSDATE
AND NBMAP.STATUS   ='A'
AND NB.STATUS      = 'A' 
ORDER BY NBMAP.SORTORDER
FETCH NEXT 6 ROWS ONLY

ORA-00933: команда SQL неправильно завершилась 00933. 00000 - "Команда SQL не завершена должным образом" * Причина:
* Действие: Ошибка в строке: 15 столбец: 1

1 Ответ

2 голосов
/ 25 сентября 2019

Предложение FETCH доступно только для Oracle 12c.В Oracle 11g вы можете работать с ROW_NUMBER вместо:

select netbankid, bankname, sortorder, bankcode
from
(
  select 
    nb.netbankid,
    nb.bankname,
    nbmap.sortorder,
    nb.bankcode,
    row_number() over (order by nbmap.sortorder) as rn
  from vtsmnetbnk nb
  inner join cgcmn.vtmestrnetbnkmap nbmap on nbmap.netbankid = nb.netbankid
  where nbmap.storeid = 133 
  and nbmap.effdate <= sysdate
  and nbmap.status = 'A'
  and nb.status = 'A' 
)
where rn <= 6
order by rn;
...