Да, вы можете использовать несколько операторов в нескольких столбцах таблицы.Но из вашего запроса я вижу дополнительные операторы END, поэтому просто удалил их из вашего запроса и обновил последний оператор case.Не уверен, что это то, что вы хотите-
SELECT description_arab,
cts_trx_type,
comp_code,
branch_code,
currency_code,
gl_code,
cif_sub_no,
cts_trs_no,
trans_date,
value_date,
fc_amount,
cv_amount,
description,
CASE
WHEN fc_amount IS NULL THEN '0'
ELSE fc_amount
END AS fc ,
CASE
WHEN cts_trx_type IS NULL THEN 'JV'
ELSE cts_trx_type
END AS trx_type,
CASE
WHEN currency_code = 368 THEN 'IQD'
WHEN currency_code = 840 THEN 'USD'
ELSE 'INVALID CURRECY' -- added this to check other checks as well
END as currency
FROM dof
WHERE to_date(trans_date,'DD/MM/YYYY') BETWEEN to_date('24/09/18,'dd/mm/yyyy') AND TO_DATE('21/11/18' ,'dd/mm/yyyy') and currency_code IS NOT NULL order by cts_trs_no