powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Особенности IIF
7 сообщений из 7, страница 1 из 1
Особенности IIF
    #38503876
tbazadaykin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Я что-то делаю не так, но что не понял пока. Направьте, о мудрейшие!

Таблица
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SET SQL DIALECT 3;
CREATE TABLE VOIPOPENCACDREPOCH (
    EPOCHID         INTEGER NOT NULL,
    EPOCHSTARTDATE  TIMESTAMP NOT NULL,
    EPOCHENDDATE    TIMESTAMP,
    DESCRIPTION     VARCHAR(1024),
    ISCURRENT       COMPUTED BY (IIF(CURRENT_TIMESTAMP between EPOCHSTARTDATE and
coalesce(EPOCHENDDATE, cast('31.12.2099 23:59:59.9999' as timestamp)),1,0))
);

ALTER TABLE VOIPOPENCACDREPOCH ADD CONSTRAINT PK_VOIPOPENCACDREPOCH PRIMARY KEY (EPOCHID);

CREATE INDEX IDX_VOIPOPENCACDREPOCH_CURRENT ON VOIPOPENCACDREPOCH COMPUTED BY (IIF(CURRENT_TIMESTAMP between EPOCHSTARTDATE and
coalesce(EPOCHENDDATE, cast('31.12.2099 23:59:59.9999' as timestamp)),1,0));
CREATE UNIQUE DESCENDING INDEX IDX_VOIPOPENCACDREPOCH_PERIOD ON VOIPOPENCACDREPOCH (EPOCHSTARTDATE, EPOCHENDDATE);



Данные:
EPOCHIDEPOCHSTARTDATEEPOCHENDDATEDESCRIPTIONISCURRENT101.01.201230.11.2013 23:59:59начальный период0301.12.2013nullпереход на кластер1401.01.201101.02.20110

Запрос раз:
Код: sql
1.
2.
3.
select * from VOIPOPENCACDREPOCH E where e.iscurrent=0
План
PLAN (E INDEX (IDX_VOIPOPENCACDREPOCH_CURRENT))


Результат:
EPOCHIDEPOCHSTARTDATEEPOCHENDDATEDESCRIPTIONISCURRENT101.01.201230.11.2013 23:59:59начальный период0401.01.201101.02.20110

Запрос двас:
Код: sql
1.
2.
3.
4.
5.
select *
from VOIPOPENCACDREPOCH E
where e.iscurrent=1
План
PLAN (E INDEX (IDX_VOIPOPENCACDREPOCH_CURRENT))


А вот результат пустой.

Почему во втором случае пустой результат? Оно конечно не принципиально, т.к. таблица будет совсем не большая, но хочется разобраться почему.
...
Рейтинг: 0 / 0
Особенности IIF
    #38503912
tbazadaykin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Firebird 2.1
...
Рейтинг: 0 / 0
Особенности IIF
    #38503916
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tbazadaykinFirebird 2.1
"Нет такой версии" (с) Влад

Версия Firebird состоит из четырёх чисел.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Особенности IIF
    #38503922
tbazadaykin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
LI-V6.3.2.18118 Firebird 2.1
...
Рейтинг: 0 / 0
Особенности IIF
    #38503928
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А текущая версия у ветки 2.1 это 2.1.5.18496. Выводы сделать сумеешь сам?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Особенности IIF
    #38503953
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tbazadaykin,

Код: sql
1.
2.
CREATE INDEX IDX_VOIPOPENCACDREPOCH_CURRENT ON VOIPOPENCACDREPOCH COMPUTED BY (IIF(CURRENT_TIMESTAMP between EPOCHSTARTDATE and
coalesce(EPOCHENDDATE, cast('31.12.2099 23:59:59.9999' as timestamp)),1,0));

Это не будет работать ибо CURRENT_TIMESTAMP в выражении индекса - нонсенс
...
Рейтинг: 0 / 0
Особенности IIF
    #38503991
tbazadaykin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
В общем 2.1.2.18118.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Особенности IIF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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