Перейти к основному содержанию
`Ctrl`+`K`

# Sql-функции

## Функции getmnemocode, getheadline и getattribute

В SQL-запросе вместо получения хэдлайна, мнемокода или иного атрибута через join или подзапрос можно использовать функции `getmnemocode`, `getheadline` и `getattribute`.

    --getmnemocode
    getmnemocode(idpclass bigint, idpobj bigint)

    getmnemocode(gid text)

    --getheadline
    getheadline(idpclass bigint, idpobj bigint)

    getheadline(gid text)

    --getattribute
    getattribute(idpclass bigint, idpobj bigint, spattr text)

    getattribute(pgid text, pattr text)

Данные функции можно использовать, если возвращаются немногочисленные объекты, иначе на БД будет большая нагрузка.

Внимание

Нельзя использовать при формировании отчётов или отображения List.

Можно использовать для:

- получения данных через onRefreshExt для отображения Card и ему подобных

- печатных форм

- для разового анализа данных через приложение управления БД (например, dbeaver)

Примеры использования:

    select    t.sRegNum
            , t.dReg
            , t.idService
            --для id нужно принудительно указать класс
            , getmnemocode(51001,t.idService) idServiceMC
            , getheadline(51001,t.idService) idServiceHL
            --гид можно сразу передать на вход
            , t.gidSrc
            , getmnemocode(t.gidSrc) as gidSrcMC
            , getheadline(t.gidSrc) as gidSrcHL
            --getattribute
            , getattribute('2101', t.idResourceholder, 'gid') gidResourceHolder
            , getheadline(getattribute('2101', t.idResourceholder, 'gid')) as idResourceHolderHL
    from oil_tankerpos t

В разработке расширение методов:

    --getmnemocode
    getmnemocode(sNameTb text, idpobj bigint)

    --getheadline
    getheadline(sNameTb text, idpobj bigint)