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

Откуда:
Сообщений: 32
Подскажите, пожалуйста, коллеги, можно ли после, до или во время выполнения запроса вида
select 1 from sysibm.sysdummy1 where 'TEXT' = 'TEXT1' or 'SUBTEXT' like 'SUB%' or 1 = 2

узнать какой из предикатов отработал ?

Понимаю, что дикость, но жизнь заставляет.

db2 luw 10.5.9
1 мар 18, 15:52    [21229004]     Ответить | Цитировать Сообщить модератору
 Re: Позитивные предикаты  [new]
Hunterik
Member

Откуда:
Сообщений: 467
aserdjuk,
"'SUBTEXT' like 'SUB%'".
Ваш, кэп. =)

Генерация флажков с помощью case? Какая конечная цель?
2 мар 18, 00:03    [21230587]     Ответить | Цитировать Сообщить модератору
 Re: Позитивные предикаты  [new]
Hunterik
Member

Откуда:
Сообщений: 467
Использование таблиц раскраски?
2 мар 18, 00:06    [21230593]     Ответить | Цитировать Сообщить модератору
 Re: Позитивные предикаты  [new]
aserdjuk
Member

Откуда:
Сообщений: 32
Hunterik,

основной целью было показать простоту предикатов - никаких сабселектов, функций и прочего.

Таблиц раскраски нет, маленький проект, в котором пользователи определяют фильтры для полей документов,
для каждого документа генерируется запрос с преобразованием фильтров в предикаты.
Конструкция работает, но тут возник вопрос о том, какой именно фильтр (предикат) позитивен.
2 мар 18, 10:31    [21231377]     Ответить | Цитировать Сообщить модератору
 Re: Позитивные предикаты  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4947
aserdjuk
Hunterik,

основной целью было показать простоту предикатов - никаких сабселектов, функций и прочего.

Таблиц раскраски нет, маленький проект, в котором пользователи определяют фильтры для полей документов,
для каждого документа генерируется запрос с преобразованием фильтров в предикаты.
Конструкция работает, но тут возник вопрос о том, какой именно фильтр (предикат) позитивен.

Так почему не подходит case?

select 1 
, case when 'TEXT' = 'TEXT1' then 1 else 0 end c1
, case when 'SUBTEXT' like 'SUB%' then 1 else 0 end c2
, case when 1 = 2 then 1 else 0 end c3
from sysibm.sysdummy1
where 'TEXT' = 'TEXT1' or 'SUBTEXT' like 'SUB%' or 1 = 2
2 мар 18, 13:25    [21232127]     Ответить | Цитировать Сообщить модератору
 Re: Позитивные предикаты  [new]
aserdjuk
Member

Откуда:
Сообщений: 32
Case уже есть в черновике, только не хочется уменьшать в два раза размер возможного стейтмента.
Да и вопросы к предикатам возникают только в процентах случаев.

Жаль, т.к. для предикатов и целых запросов сейчас даже стоимость автоматически пересчитывается вечером
из explain таблиц.
2 мар 18, 14:01    [21232316]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить