powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
13 сообщений из 13, страница 1 из 1
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536772
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!

Такой вопрос: может есть какая-нибудь зарезервированная переменная, которая позволит в коде WHEN использовать значение из CASE'a? Без вложенных запросов ?

Код: plsql
1.
2.
3.
4.
case {формула}
   when 0 then ....
   else [всякие рассчеты с использованием {формула}]
end



т.е. хоросо бы только один раз считать {формула}
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536777
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семёнкоторая позволит в коде WHEN использовать значение из CASE'a? Без вложенных запросов ?Нет.
Но для некоторых формул можно воспользоваться nullif-ом.
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536781
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
под вложенными запросами понимаю что-нибудь такое


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT
   case f_val
      when 0 then ...
      else [всякие рассчеты с использованием f_val]
   end
FROM
   (
      SELECT {формула} as f_val, *
      FROM ...
   )
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536782
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

жаль. Спасибо
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536786
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как хорошо было бы, если бы в CASE сразу объявить alias
Надо будет предложить Ларри Эллисону
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536791
Кроик Семён,

Или infinity/nan вместо null
Код: plsql
1.
[всякие рассчеты с использованием cast({формула} as binary_double)]
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536792
Кроик Семён если бы в CASE сразу объявить alias почему только в case. Давай вешать алиасы на любую часть выражения:
Код: plsql
1.
1 as один + один
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536800
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик СемёнНадо будет предложить Ларри ЭллисонуАга. Каждый кулик хвалит своё болото.
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536837
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OK

хотя если Oracle только 1 раз для каждой строки считает {formula}, то может я зря нервничаю
только SQL-запрос получается раздутым, а на скорости его выполнения это не сказывается...

почему озаботился вообще: у меня в этой {formula} несколько операций с CLOB-полем
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536840
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семёнхотя если Oracle только 1 раз для каждой строки считает {formula}Как правило, каждый раз. Даже если "рассчитывать" её в inline view.
Кроик Семёну меня в этой {formula} несколько операций с CLOB-полемПокажи:
Кроик Семён
Код: plsql
1.
всякие рассчеты с использованием
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536845
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
{формула}

Код: plsql
1.
   DBMS_LOB.InStr(PACK_MY_UTILS.BlobToClob(BLOB_FIELD),'Text')



учитывая (выше описался), что работаю с BLOB-полем, то кроме DBMS_LOB.InStr использую еще и функцию преобразования BLOB в CLOB из пакета:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
   FUNCTION BlobToClob(Src in blob)
   RETURN clob IS
      Result    clob;

      iLen      integer:=DBMS_LOB.lobmaxsize;
      iSrcOffs  integer:=1;
      iDstOffs  integer:=1;
      iLang     integer:=DBMS_LOB.default_lang_ctx;
      iWarn     integer;
   BEGIN
      -- http://www.angelfire.com/home/jasonvogel/oracle_convert_blob_to_clob.html
      if not((Src is NULL) or (DBMS_LOB.GetLength(Src)=0)) then
         DBMS_LOB.CreateTemporary(Result,true);
         DBMS_LOB.ConvertToClob(Result,Src,iLen,
                                iSrcOffs,iDstOffs,
                                DBMS_LOB.default_csid,iLang,iWarn);
      else
         Result:=null;
      end if;

      return(Result);
   END BlobToClob;
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536848
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён{формула}Покажи то, что просили.
...
Рейтинг: 0 / 0
Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
    #39536850
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
а [всякие рассчеты с использованием] это

Код: plsql
1.
2.
3.
DBMS_LOB.SubStr{PACK_MY_UTILS.BlobToClob(BLOB_FIELD), 
                10, 
                {формула})
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Возможно ли использовать без вложенных запросов значение из CASE в формуле в коде WHEN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]