2015-12-21 2 views
-1

Мне нужно создать функцию DECODE, которая возвращает GOOD, если число больше 10 000 и BAD, если оно меньше 10 000. Я знаю, что могу использовать CASE, но мой учитель хочет, чтобы мы сделайте это с помощью DECODE.Функция Oracle SQL Desktop DECODE

+3

Получить еще одного учителя. 'DECODE()' - синтаксис, специфичный для Oracle, который был заменен стандартом ANSI 'CASE'. 'CASE' также более мощный. –

+0

Хотелось бы, чтобы у меня были лучшие учителя. Мы изучаем старое программирование ... – VTodorov

+1

SQL Desktop - не общее имя ... вы можете дать ссылку? – Hogan

ответ

0

Я понятия не имею, что такое SQL Desktop - поисковые запросы Google просто возвращают эту страницу.

Если вы говорите о функции Oracle DECODE(), и ваш вопрос задан правильно, тогда ваш профессор должен указать, что ответ на эту проблему в принципе невозможно сделать, и вы действительно хотите использовать оператор CASE ,

0

Вот общее представление о том, что вы хотите сделать. Вы можете настроить это для своего задания.

select records 
, decode ((records - 5), 0, 'five', 'ten') result 
from (
select 5 records 
from dual 
union 
select 10 records 
from dual 
) x 
+0

Вау какой странный пример. – Hogan

2

Это распространенная проблема в «старом» Oracle. Вы можете использовать функцию sign():

select decode(sign(number - 1000), 1, 'GOOD', -1, 'BAD', 0, 'EQUAL', 'Huh???') 

CASE гораздо более разумным.

Я отвечаю только потому, что комментарии предполагают, что это либо очень трудно, либо невозможно.

+0

@sstan. , , Спасибо. Вот что я имел в виду. –