Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ORACLE IF в SQL запросах

417 views
Skip to first unread message

Ivan Mhitarov

unread,
Sep 27, 1999, 3:00:00 AM9/27/99
to
Здравствуй, All!

Вопросик возник: Как можно использовать
оператор IF в SQL запросах для Oracle 8?
Если вообще есть такая возможность.

Заранее спасибо.
Мхитаров Иван.

Oleg Roshchin

unread,
Sep 27, 1999, 3:00:00 AM9/27/99
to
У Оракла в селектах вместо IF'а - функция DECODE.

select Decode(lang, 'RUS', 'по-русски', 'ENG', 'in English', 'FR',
'Francais', ' - ') from .......

таких пар, как в примере - сколько угодно,
последнее значение - если не найдено соответствия в указанных парах

Олег

Ivan Mhitarov wrote in message <7sn6co$pud$1...@ddt.demos.su>...

George Rastorguev

unread,
Sep 28, 1999, 3:00:00 AM9/28/99
to
Hello, Ivan

> Вопросик возник: Как можно использовать
> оператор IF в SQL запросах для Oracle 8?
> Если вообще есть такая возможность.

Либо пользоваться функцией decode (это аналог case в дельфи), либо
написать функцию на PL/SQL

С уважением, Георгий.


Sergey Miroshnichenko

unread,
Sep 28, 1999, 3:00:00 AM9/28/99
to
В SQL запросе пишешь:

Begin
If <condition> Then
<right-statement>;
Else
<wrong-statement>;
En If;
End;

В программе пишешь:

Q.Prepare;
Q.ExecSQL;

Hе делай попытки открыть запрос методом Q.Open
Я видел где-то такой пример:

Begin
Select Count(*) Into :result From <sometable>;
End;

К сожалению я не обратил тогда внимание на то, как взять значение из
параметра result. Во всех моих попытках возвращался нуль, хотя таблица имела
много записей.
Если раскопаешь, напиши мне prot...@mv.ru (в поле Subj укажи: Sergey
Miroshnichenko).
Пока.


Sergey Miroshnichenko

unread,
Sep 29, 1999, 3:00:00 AM9/29/99
to
>Я видел где-то такой пример:
>
>Begin
> Select Count(*) Into :result From <sometable>;
>End;
>
>К сожалению я не обратил тогда внимание на то, как взять значение из
>параметра result. Во всех моих попытках возвращался нуль, хотя таблица
имела
>много записей.

Я нашел этот пример! Такая озможность есть в библиотеке Direct Oracle
Access!
Сергей.

0 new messages