Я выполняю запрос в Oracle и пытаюсь создать новый столбец, который определяется вложенным оператором CASE ниже.Я получаю сообщение об ошибке в выделенном выражении «Остальное» со словами «Недопустимое количество аргументов».
Я просматривал это много раз, и, похоже, у него правильное количество аргументов.Я что-то здесь упускаю?
SELECT
CASE
WHEN TRD_TYP IN ('Swaption', 'IRG Floor', 'IRG Cap')
THEN
CASE
WHEN BUY_SELL = 'BUY'
THEN CURR_NOTNL_CUR
ELSE -CURR_NOTNL_CUR
END
ELSE
CASE
WHEN TRD_TYP = 'IRSWAP'
THEN CURR_NOTNL_CUR
END
**ELSE**
CASE
WHEN TRD_TYP = 'EQSWAP'
THEN CURR_NOTNL_UNIT
END
ELSE
CASE
WHEN TRD_TYP = 'FUTURE'
THEN
CASE
WHEN BUY/SELL = 'BUY'
THEN CURR_NOTNL_CUR / PRC
ELSE -CURR_NOTNL_CUR / PRC
END
END
ELSE
CASE
WHEN BUY_SELL = 'BUY'
THEN CURR_NOTNL_UNIT
ELSE -CURR_NOTNL_UNIT
END
END AS UNITS_OF_UNDERLYING
FROM ACTLANN.HDG_ASST_DTLS