Мне нужно создать функцию DECODE, которая возвращает GOOD, если число больше 10 000 и BAD, если оно меньше 10 000. Я знаю, что могу использовать CASE, но мой учитель хочет, чтобы мы сделайте это с помощью DECODE.Функция Oracle SQL Desktop DECODE
ответ
Я понятия не имею, что такое SQL Desktop - поисковые запросы Google просто возвращают эту страницу.
Если вы говорите о функции Oracle DECODE(), и ваш вопрос задан правильно, тогда ваш профессор должен указать, что ответ на эту проблему в принципе невозможно сделать, и вы действительно хотите использовать оператор CASE ,
Вот общее представление о том, что вы хотите сделать. Вы можете настроить это для своего задания.
select records
, decode ((records - 5), 0, 'five', 'ten') result
from (
select 5 records
from dual
union
select 10 records
from dual
) x
Вау какой странный пример. – Hogan
Это распространенная проблема в «старом» Oracle. Вы можете использовать функцию sign()
:
select decode(sign(number - 1000), 1, 'GOOD', -1, 'BAD', 0, 'EQUAL', 'Huh???')
CASE
гораздо более разумным.
Я отвечаю только потому, что комментарии предполагают, что это либо очень трудно, либо невозможно.
@sstan. , , Спасибо. Вот что я имел в виду. –
Получить еще одного учителя. 'DECODE()' - синтаксис, специфичный для Oracle, который был заменен стандартом ANSI 'CASE'. 'CASE' также более мощный. –
Хотелось бы, чтобы у меня были лучшие учителя. Мы изучаем старое программирование ... – VTodorov
SQL Desktop - не общее имя ... вы можете дать ссылку? – Hogan