Я запрашиваю некоторые данные из таблицы в DB2 / z, которая содержит почасовые данные, но иногда пропускает несколько часов (если клиенты не отправляют подробности за этот час).
Поскольку я передаю данные прямо в инструмент построения диаграмм, которому нужен запрос для получения данных оси, иногда он имеет пропущенные значения по оси времени и выглядит некрасиво:
23.00 |===
22.00 |=====
14.00 |============
01.00 |==
00.00 |=
+--------------------
Мы, как правило, добавили любые вспомогательные таблицы, такие как 24-рядная таблица, содержащая все часы, поэтому мне нужен запрос в DB2, который вернет все часов дня без надежной вспомогательной таблицы , Я использовал чудовищное:
select '00.00' from sysibm.sysdummy1
union all select '01.00' from sysibm.sysdummy1
union all select '02.00' from sysibm.sysdummy1
union all select '03.00' from sysibm.sysdummy1
: : :
union all select '23.00' from sysibm.sysdummy1
order by 1
, что является почти таким же клёвым решением, которое я когда-либо видел, так что я бы предпочёл что-нибудь немного чище.
Я разместил свое собственное решение ниже, но я открыт для всего более простого или более элегантного.