Как правильно передать колонки в hstore, чтобы колонки были названием ключей

Когда я пытаюсь передать в hstore необходимые колонки все именуются в формате f1-fn. Если я передаю в hstore псевдоним таблицы, то ключи именуются нормально

    SELECT hstore(edp)
    FROM dbo.ed_devices_pts edp
    LIMIT 1;

И результат становится адекватный, но мне не нужно брать все поля

link_imp2 => null,
f_division => 6,
link => 11197321,
f_devices => 10291621,
n_percent2 => null,
f_subdivision => 0,
f_device_distributor => null,
s_audit_id_create => 5562,
n_percent => 100.0000,
c_note => null,
link_imp => ,
f_energy_types => 9,
f_energy_types_distributor => null,
s_owner => omnix,
b_main => t

Я пробовал преобразовывать в тип record, но это не помагает

    SELECT hstore((edp.b_main,
           edp.link_imp,
           edp.f_devices,
           edp.n_percent,
           edp.d_date_end,
           edp.f_division,
           edp.n_percent2,
           edp.d_date_begin,
           edp.f_registr_pts,
           edp.f_subdivision,
           edp.f_energy_types)::record)
    FROM dbo.ed_devices_pts edp
    LIMIT 1;

И я получаю результат в таком формате

f6 => 6,
f7 => null,
f8 => "2000-01-01 00:00:00+03",
f9 => 10472461,
f10 => 0,
f11 => 9,
f1 => t,
f2 => ,
f3 => 10291621,
f4 => 100.0000,
f5 => "2008-10-17 01:00:00+04"

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

Я знаю, что можно использовать подзапрос в выбором нужных колонок, но в некоторых случаях тогда придется вычитать ключи, когда колонка используется в условии соединения, но не должна использоваться в hstore.


Ответы (0 шт):