Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Упростить SQL запрос / 23 сообщений из 23, страница 1 из 1
14.03.2019, 15:21
    #39786090
maximand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
Добрый день.

Я создал запрос, такой чтобы из длинного списка тарифов на каждый день, сделать короткий список с диапазоном дат (с - по).
Полагаю, что можно всё тоже самое сделать проще. Хотя вроде бы и так не плохо.
Посоветуйте.
PS тестовые данные with r as включены для удобства.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
with r as
 (select to_date('2015-01-01', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual union all
  select to_date('2015-01-02', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual  union all
  select to_date('2015-01-03', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union  all
  select to_date('2015-01-04', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-05', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-06', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-07', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union all
  select to_date('2015-01-08', 'yyyy-mm-dd') res_date, 'RATE1' rate from dual union all
  select to_date('2015-01-09', 'yyyy-mm-dd') res_date, 'RATE1' rate  from dual),
f as
 (select rownum n, t.*
    from (select res_date,
                 rate,
                 case
                   when LAG(rate, 1) over(ORDER BY res_date) = rate then
                    '1'
                   else
                    '0'
                 end as ooo
            from r
           order by res_date) t
   where ooo = '0'),
l as
 (select rownum n, t.*
    from (select res_date,
                 rate,
                 case
                   when LEAD(rate, 1) over(ORDER BY res_date) = rate then
                    '1'
                   else
                    '0'
                 end as ooo
            from r
           order by res_date) t
   where ooo = '0')

select f.n, f.res_date, l.res_date, f.rate
  from f, l
 where f.n = l.n
   and f.rate = l.rate
 order by 2
...
Рейтинг: 0 / 0
14.03.2019, 15:52
    #39786108
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
STFF start_of_group
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with r as
 (select to_date('2015-01-01', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual union all
  select to_date('2015-01-02', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual  union all
  select to_date('2015-01-03', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union  all
  select to_date('2015-01-04', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-05', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-06', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-07', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union all
  select to_date('2015-01-08', 'yyyy-mm-dd') res_date, 'RATE1' rate from dual union all
  select to_date('2015-01-09', 'yyyy-mm-dd') res_date, 'RATE1' rate  from dual)
  select rate, min(res_date), max(res_date) from (
  select res_date, rate, sum(sog) over (order by res_date) sog from (
select res_date, rate, case when rate <> nvl( lag(rate) over (order by res_date),'~') then 1 end sog from r))
group by rate, sog
...
Рейтинг: 0 / 0
14.03.2019, 16:18
    #39786125
maximand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
MazoHist,

СПАСИБО ОГРОМНОЕ!
...
Рейтинг: 0 / 0
14.03.2019, 18:19
    #39786190
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
with r as
 (select to_date('2015-01-01', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual union all
  select to_date('2015-01-02', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual  union all
  select to_date('2015-01-03', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union  all
  select to_date('2015-01-04', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-05', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-06', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-07', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union all
  select to_date('2015-01-08', 'yyyy-mm-dd') res_date, 'RATE1' rate from dual union all
  select to_date('2015-01-09', 'yyyy-mm-dd') res_date, 'RATE1' rate  from dual
)
select rm.*
  from r match_recognize(
            order by res_date
            measures s.rate as rate
                   , first(res_date) as date_from
                   , last(res_date) as date_till
            pattern(s next*)
            define next as s.res_date <= next.res_date and s.rate = next.rate
            ) rm
;

RATE  DATE_FROM   DATE_TILL
----- ----------- -----------
RATE1 01.01.2015  02.01.2015
RATE2 03.01.2015  07.01.2015
RATE1 08.01.2015  09.01.2015

SQL> 
...
Рейтинг: 0 / 0
14.03.2019, 18:36
    #39786195
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
andrey_anonymous,

если есть order by res_date,
s.res_date <= next.res_date надо (обязательно) указывать ?


.....
stax
...
Рейтинг: 0 / 0
14.03.2019, 19:34
    #39786215
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
Stax(обязательно) указывать ?
Полагаю, что нет
...
Рейтинг: 0 / 0
15.03.2019, 10:19
    #39786462
maximand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
andrey_anonymous,

И вам спасибо. К сожалению у меня 11G - это не работает. Но на 12ом всё окей.
...
Рейтинг: 0 / 0
15.03.2019, 15:17
    #39786796
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
Проще:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
with r as
 (select to_date('2015-01-01', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual union all
  select to_date('2015-01-02', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual  union all
  select to_date('2015-01-03', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union  all
  select to_date('2015-01-04', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-05', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-06', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-07', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union all
  select to_date('2015-01-08', 'yyyy-mm-dd') res_date, 'RATE1' rate from dual union all
  select to_date('2015-01-09', 'yyyy-mm-dd') res_date, 'RATE1' rate  from dual
)
select rm.*
  from r match_recognize(
            order by res_date
            measures rate as rate
                   , first(res_date) as date_from
                   , last(res_date) as date_till
            pattern(same_rate+)
            define same_rate as rate = first(rate)
            ) rm
/

RATE  DATE_FROM DATE_TILL
----- --------- ---------
RATE1 01-JAN-15 02-JAN-15
RATE2 03-JAN-15 07-JAN-15
RATE1 08-JAN-15 09-JAN-15

SQL> 



SY.
...
Рейтинг: 0 / 0
18.03.2019, 18:00
    #39787991
maximand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
SY,

Like
...
Рейтинг: 0 / 0
19.03.2019, 15:53
    #39788522
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
SYПроще
...но следует иметь ввиду, что без стартового элемента есть ньюансы matching:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
with r as
 (select to_date('2015-01-01', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual union all
  select to_date('2015-01-02', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual  union all
  select to_date('2015-01-03', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union  all
  select to_date('2015-01-04', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-05', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-06', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-07', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union all
  select to_date('2015-01-08', 'yyyy-mm-dd') res_date, 'RATE1' rate from dual union all
  select to_date('2015-01-09', 'yyyy-mm-dd') res_date, 'RATE1' rate  from dual union all
  select to_date('2015-01-10', 'yyyy-mm-dd') res_date, '' rate  from dual union all
  select to_date('2015-01-11', 'yyyy-mm-dd') res_date, '' rate  from dual
)
select rm.*
  from r match_recognize(
            order by res_date
            measures rate as rate
                   , first(res_date) as date_from
                   , last(res_date) as date_till
            pattern(strt same_rate*)
--            pattern(same_rate*)
--            pattern(same_rate+)
            define same_rate as rate = first(rate)
            ) rm
...
Рейтинг: 0 / 0
19.03.2019, 16:34
    #39788542
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
andrey_anonymousSYПроще
...но следует иметь ввиду, что без стартового элемента есть ньюансы matching:
[/src]
Ньюанс в rate is null, или еще в чем то?

зы
define same_rate as rate = first(rate)
null=null
добавить nvl

.....
stax
...
Рейтинг: 0 / 0
19.03.2019, 17:28
    #39788564
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
StaxНьюанс в rate is null, или еще в чем то?
В matching жеж :)
Если по очереди раскомментировать оба варианта без стартового элемента и со стартовым, то можно увидеть, что оно работает по-разному, и это следует иметь ввиду.
Был хороший гайд на эту тему - что-то про Deep Dive в этот самый pattern matching, уже не упомню
...
Рейтинг: 0 / 0
19.03.2019, 17:53
    #39788576
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
andrey_anonymousStaxНьюанс в rate is null, или еще в чем то?
В matching жеж :)


чет я с ручника никак не снимусь, не вижу (засліпило) разницы для
pattern(strt same_rate*) и pattern(same_rate*)

ps
define same_rate as rate = first(rate)
....
stax
...
Рейтинг: 0 / 0
19.03.2019, 18:02
    #39788583
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
Staxчет я с ручника никак не снимусь, не вижу (засліпило) разницы для
pattern(strt same_rate*) и pattern(same_rate*)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
with r as
 (  select to_date('2015-01-10', 'yyyy-mm-dd') res_date, '' rate  from dual union all
  select to_date('2015-01-11', 'yyyy-mm-dd') res_date, '' rate  from dual
)
select rownum, rm.*
  from r match_recognize(
            order by res_date
            measures rate as rate
                   , first(res_date) as date_from
                   , last(res_date) as date_till
            pattern(strt same_rate*)
            define same_rate as rate = first(rate)
            ) rm
;
    ROWNUM RATE DATE_FROM   DATE_TILL
---------- ---- ----------- -----------
         1      10.01.2015  10.01.2015
         2      11.01.2015  11.01.2015
with r as
 (  select to_date('2015-01-10', 'yyyy-mm-dd') res_date, '' rate  from dual union all
  select to_date('2015-01-11', 'yyyy-mm-dd') res_date, '' rate  from dual
)
select rownum, rm.*
  from r match_recognize(
            order by res_date
            measures rate as rate
                   , first(res_date) as date_from
                   , last(res_date) as date_till
            pattern(same_rate*)
            define same_rate as rate = first(rate)
            ) rm
;
    ROWNUM RATE DATE_FROM   DATE_TILL
---------- ---- ----------- -----------
         1                  
         2  
...
Рейтинг: 0 / 0
19.03.2019, 18:11
    #39788587
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
andrey_anonymous,

спасибо, не туда смотрел ( https://apex.oracle.com)

поведение "примерно" понятно

....
stax
...
Рейтинг: 0 / 0
19.03.2019, 18:20
    #39788590
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
Staxповедение "примерно" понятно
Для улучшения понимания :)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with r as
 (  select to_date('2015-01-10', 'yyyy-mm-dd') res_date, '' rate  from dual union all
  select to_date('2015-01-11', 'yyyy-mm-dd') res_date, '' rate  from dual
)
select rownum, rm.*
  from r match_recognize(
            order by res_date
            measures rate as rate
                   , first(res_date) as date_from
                   , last(res_date) as date_till
                   , MATCH_NUMBER() AS match_no
                   , CLASSIFIER() AS classifier
            pattern(/*strt*/ same_rate*)
            define same_rate as rate = first(rate)
            ) rm
;
...
Рейтинг: 0 / 0
19.03.2019, 18:41
    #39788599
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
andrey_anonymousStaxповедение "примерно" понятно
Для улучшения понимания :)


я так примерно и понимал
токо раньше ето было связано со *,
а счас и с правилом с null значениями


.....
stax
...
Рейтинг: 0 / 0
19.03.2019, 18:59
    #39788610
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
Staxтоко раньше ето было связано со *,
а счас и с правилом с null значениями

не човчем :)
...
Рейтинг: 0 / 0
19.03.2019, 19:09
    #39788617
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
andrey_anonymousне човчем :)
мож и так, я null пріплел к тому что вариант SY не отработает (надо nvl, decode, ...)

а так, со старт выбрано одна строка, без "0" строк

зы
у нас 11-ка, да и ...

....
stax
...
Рейтинг: 0 / 0
19.03.2019, 22:43
    #39788696
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
andrey_anonymous...но следует иметь ввиду, что без стартового элемента есть ньюансы matching:


Нюанс дейсвительно есть:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
SQL> with r as
  2   (select to_date('2015-01-01', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual union all
  3    select to_date('2015-01-02', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual  union all
  4    select to_date('2015-01-03', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union  all
  5    select to_date('2015-01-04', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  6    select to_date('2015-01-05', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  7    select to_date('2015-01-06', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  8    select to_date('2015-01-07', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union all
  9    select to_date('2015-01-08', 'yyyy-mm-dd') res_date, 'RATE1' rate from dual union all
 10    select to_date('2015-01-09', 'yyyy-mm-dd') res_date, 'RATE1' rate  from dual union all
 11    select to_date('2015-01-10', 'yyyy-mm-dd') res_date, '' rate  from dual union all
 12    select to_date('2015-01-11', 'yyyy-mm-dd') res_date, '' rate  from dual
 13  )
 14  select rm.*
 15    from r match_recognize(
 16              order by res_date
 17              measures rate as rate
 18                     , first(res_date) as date_from
 19                     , last(res_date) as date_till
 20              pattern(strt same_rate*)
 21  --            pattern(same_rate*)
 22  --            pattern(same_rate+)
 23              define same_rate as rate = first(rate)
 24              ) rm
 25  /

RATE  DATE_FROM DATE_TILL
----- --------- ---------
RATE1 01-JAN-15 02-JAN-15
RATE2 03-JAN-15 07-JAN-15
RATE1 08-JAN-15 09-JAN-15
      10-JAN-15 10-JAN-15
      11-JAN-15 11-JAN-15

SQL> with r as
  2   (select to_date('2015-01-01', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual union all
  3    select to_date('2015-01-02', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual  union all
  4    select to_date('2015-01-03', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union  all
  5    select to_date('2015-01-04', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  6    select to_date('2015-01-05', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  7    select to_date('2015-01-06', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  8    select to_date('2015-01-07', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union all
  9    select to_date('2015-01-08', 'yyyy-mm-dd') res_date, 'RATE1' rate from dual union all
 10    select to_date('2015-01-09', 'yyyy-mm-dd') res_date, 'RATE1' rate  from dual union all
 11    select to_date('2015-01-10', 'yyyy-mm-dd') res_date, '' rate  from dual union all
 12    select to_date('2015-01-11', 'yyyy-mm-dd') res_date, '' rate  from dual
 13  )
 14  select rm.*
 15    from r match_recognize(
 16              order by res_date
 17              measures rate as rate
 18                     , first(res_date) as date_from
 19                     , last(res_date) as date_till
 20  --          pattern(strt same_rate*)
 21              pattern(same_rate+)
 22              define same_rate as rate = first(rate) or (rate is null and first(rate) is null)
 23              ) rm
 24  /

RATE  DATE_FROM DATE_TILL
----- --------- ---------
RATE1 01-JAN-15 02-JAN-15
RATE2 03-JAN-15 07-JAN-15
RATE1 08-JAN-15 09-JAN-15
      10-JAN-15 11-JAN-15

SQL> 



SY.
...
Рейтинг: 0 / 0
19.03.2019, 22:53
    #39788700
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
Staxмож и так, я null пріплел к тому что вариант SY не отработает (надо nvl, decode, ...)


Можно и без nvl/decode:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
with r as
 (select to_date('2015-01-01', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual union all
  select to_date('2015-01-02', 'yyyy-mm-dd') res_date, 'RATE1' rate   from dual  union all
  select to_date('2015-01-03', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union  all
  select to_date('2015-01-04', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-05', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-06', 'yyyy-mm-dd') res_date, 'RATE2' rate from dual union all
  select to_date('2015-01-07', 'yyyy-mm-dd') res_date, 'RATE2' rate  from dual union all
  select to_date('2015-01-08', 'yyyy-mm-dd') res_date, 'RATE1' rate from dual union all
  select to_date('2015-01-09', 'yyyy-mm-dd') res_date, 'RATE1' rate  from dual union all
  select to_date('2015-01-10', 'yyyy-mm-dd') res_date, '' rate  from dual union all
  select to_date('2015-01-11', 'yyyy-mm-dd') res_date, '' rate  from dual
)
select rm.*
  from r match_recognize(
            order by res_date
            measures rate as rate
                   , first(res_date) as date_from
                   , last(res_date) as date_till,
                   classifier() cls
            pattern(same_rate+|null_rate+)
            define same_rate as rate = first(rate),
                   null_rate as rate is null
            ) rm
/

RATE  DATE_FROM DATE_TILL CLS
----- --------- --------- ----------
RATE1 01-JAN-15 02-JAN-15 SAME_RATE
RATE2 03-JAN-15 07-JAN-15 SAME_RATE
RATE1 08-JAN-15 09-JAN-15 SAME_RATE
      10-JAN-15 11-JAN-15 NULL_RATE

SQL> 



SY.
...
Рейтинг: 0 / 0
20.03.2019, 09:34
    #39788802
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
SYStaxмож и так, я null пріплел к тому что вариант SY не отработает (надо nvl, decode, ...)


Можно и без nvl/decode:

SY.
конечно можно
но ето уже другой запрос (другие правила)
.....
stax
...
Рейтинг: 0 / 0
20.03.2019, 17:10
    #39789168
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Упростить SQL запрос
Staxandrey_anonymousне човчем :)
мож и так, я null пріплел к тому что вариант SY не отработает
Я всего лишь хотел привлечь внимание к тому, что наличие/отсутствие always-true переменной в шаблоне влияет на логику pattern matching и это стоит иметь ввиду, упрощая pattern - exceptions и прочих warning не будет :)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Упростить SQL запрос / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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