Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Результат функции в селекте  [new]
Печенег
Member [заблокирован]

Откуда:
Сообщений: 152
есть запрос:
 SELECT  
 (SELECT nvl(count(*),0) from table a where a.no = z.no_cln) as ur,
   FROM 
    (SELECT a.no_cln
        FROM accounts a
        WHERE a.id='123456789987654321') z

и функция

(SELECT checkaccess(lib,user) from dual)

типа я уже получаю что то из нее...

Как их скрестить?
Мне нужно в одном селекте извернуться так чтоб:
Вернуть либо результат запроса, либо если резултат запроса не 0 выполнить функцию.

Такое возможно?
14 мар 07, 17:56    [3898931]     Ответить | Цитировать Сообщить модератору
 Re: Результат функции в селекте  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116100
Что значит "не 0" ? Записей нет ?
14 мар 07, 17:57    [3898942]     Ответить | Цитировать Сообщить модератору
 Re: Результат функции в селекте  [new]
ORA-01403
Member

Откуда: Москва
Сообщений: 60
Печенег
есть запрос:
 SELECT  
 (SELECT nvl(count(*),0) from table a where a.no = z.no_cln) as ur,
   FROM 
    (SELECT a.no_cln
        FROM accounts a
        WHERE a.id='123456789987654321') z

и функция

(SELECT checkaccess(lib,user) from dual)

типа я уже получаю что то из нее...

Как их скрестить?
Мне нужно в одном селекте извернуться так чтоб:
Вернуть либо результат запроса, либо если резултат запроса не 0 выполнить функцию.

Такое возможно?


Может быть, если результат 0? Case использовать не пробовали?
14 мар 07, 17:59    [3898956]     Ответить | Цитировать Сообщить модератору
 Re: Результат функции в селекте  [new]
Печенег
Member [заблокирован]

Откуда:
Сообщений: 152
нужно скрестить их в один селект.

что то типа IF в селекте

if (select ... ) = 0 then return 0
else (выполнилась функция) return (результ функции)

только мне это нужно в виде предложения SELECT, чтоб потом чекать это
14 мар 07, 18:12    [3899001]     Ответить | Цитировать Сообщить модератору
 Re: Результат функции в селекте  [new]
Печенег
Member [заблокирован]

Откуда:
Сообщений: 152
блин... надеюсь поймете...
14 мар 07, 18:13    [3899008]     Ответить | Цитировать Сообщить модератору
 Re: Результат функции в селекте  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116100
DECODE(rez,0,0,func) ?
14 мар 07, 18:16    [3899019]     Ответить | Цитировать Сообщить модератору
 Re: Результат функции в селекте  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63939
Блог
Печенег
Вернуть либо результат запроса, либо если резултат запроса не 0 выполнить функцию.

Можно. Если в лоб, например, так:

with stmt as ( запрос )
select value from stmt where value = 0
union all
select func(...) from stmt where value <> 0

Вообще поищи в форуме БД на rsdn, там какое-то время назад эта тема обсасывалась долго и во всех ракурсах.
14 мар 07, 18:19    [3899038]     Ответить | Цитировать Сообщить модератору
 Re: Результат функции в селекте  [new]
Stax.
Guest
Печенег
нужно скрестить их в один селект.

что то типа IF в селекте

if (select ... ) = 0 then return 0
else (выполнилась функция) return (результ функции)

только мне это нужно в виде предложения SELECT, чтоб потом чекать это

  1  select case
  2   when (select * from dual)='X' then '0'
  3   else to_char(sysdate)
  4*  end from dual
SQL> /

CASEWHEN(S
----------
0
14 мар 07, 18:57    [3899251]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить