powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Подскажите по запросу.
3 сообщений из 3, страница 1 из 1
Подскажите по запросу.
    #39669748
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени!

Имеется запрос примерно такой

Код: sql
1.
2.
3.
4.
5.
select DAYS(date1) - DAYS(date2) as Days, 
CASE WHEN (DAYS(date1) - DAYS(date2)) BETWEEN 0 AND 10 THEN '10' 
 WHEN (DAYS(date1) - DAYS(date2)) BETWEEN 11 AND 20 THEN '20'
 WHEN (DAYS(date1) - DAYS(date2)) BETWEEN 21 AND 30 THEN '30' END as Limit
from table1



Результат десятки, возможно сотни тысяч строк. Соответственно запрос достаточно долго выполняется.
Ситуация усложняется еще и тем, что один из столбцов varchar и к date его приходиться приводить.
Поэтому возник вопрос, можно ли в select вычислить DAYS(date1) - DAYS(date2) один раз и дальше в CASE использовать уже результат.
...
Рейтинг: 0 / 0
Подскажите по запросу.
    #39669784
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya,

у вас есть твердая уверенность, что вычисления делаются более одного раза?

синтаксически, можно запрос переписать так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select days_1 - days_2 as Days 
     , CASE
         WHEN (days_1 - days_2) BETWEEN  0 AND 10 THEN '10' 
         WHEN (days_1 - days_2) BETWEEN 11 AND 20 THEN '20'
         WHEN (days_1 - days_2) BETWEEN 21 AND 30 THEN '30'
       END as Limit
  from ( 
          select DAYS(date1) as days_1, DAYS(date2) as days_2 
            from table1
       ) v


но не факт, что сервер не раскроет встроенное представление и не приведет запрос к первоначальному виду...
...
Рейтинг: 0 / 0
Подскажите по запросу.
    #39670619
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Подскажите по запросу.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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