Sql запрос, чтобы найти праздники в году - PullRequest
0 голосов
/ 03 мая 2018

У меня есть таблица, в которой столбцы - это год, валюта, а третий столбец состоит из строки 100001, и она продолжается, где 1 представляет выходной, а 0 представляет рабочий день в этом конкретном году. Таблица у меня такая -

Currency      Current year    Date values
Dollar             2017                 100111000 till 365
Rupee            2016                  111000010 till 366
Rupee            2000                  11110011 till 366

Мне нужно написать запрос на выборку, который будет возвращать позицию всех 1, то есть праздников, вместе с датой в этом конкретном году. Я хочу вывод этого запроса на выборку в формате

Currency      year     date of holiday
Dollar            2017     01/01/2017

Так будет продолжаться до тех пор, пока не будут перечислены все праздники на 2017 год. Тогда это будет продолжаться в течение других лет. Мне нужно написать оператор выбора по соединению.

1 Ответ

0 голосов
/ 03 мая 2018

Используйте таблицу чисел и сложный join:

with n as (
      select rownum as n from dual connect by level <= 366
     )
select currency, year,
       (to_date(year || '-01-01') + n.n - 1) as holiday_date
from t join
     n
     on substr(t.datevalues, n.n, 1) = '1';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...