Я пытаюсь выполнить этот запрос (в oracle), но у меня есть некоторые проблемы:
SELECT CASE
WHEN deptno = '10' THEN scott.seq.nextval
|| 'next10'
WHEN deptno = '20' THEN scott.seqnextval
|| 'next20'
WHEN deptno = '30' THEN scott.seq.currval
|| 'curr'
END col_1
FROM scott.emp;
Я получаю следующие результаты:
COL_1
----------------------------------------------
191next20
192curr
193curr
194next20
195curr
196curr
197next10
198next20
199next10
200curr
201next20
202curr
203next20
204next10
205next20
206next10
207next10
И вот чтоЯ думаю, что они должны быть:
COL_1
----------------------------------------------
191next20
192curr
193curr
194next20
194curr
194curr
197next10
198next20
199next10
199curr
201next20
201curr
203next20
204next10
205next20
206next10
207next10
Итак, почему я получаю следующее значение последовательности также, когда я должен иметь текущее значение, а не только когда регистр выбирает следующее значение?Да, это можно сделать с помощью сценария plsql, но я не могу.
Спасибо!